0

以下に定義されているmyIconFunction内でapp.mxmlで定義されているグローバル変数を使用することは可能ですか?

<s:List id="list" x="7" y="10" width="463" height="661"
        creationComplete="list_creationCompleteHandler(event)" labelField="name" click="list_clickHandler(event)">
    <s:itemRenderer>
        <fx:Component>
            <s:IconItemRenderer  labelField="name"
                                 iconFunction="myIconFunction"

                                decorator="@Embed(source='assets/images/general/arrow_next.jpg')"
                                 iconWidth="50"
                                 iconHeight="50">
                <fx:Script>
                    <![CDATA[
                        private function myIconFunction(item:Object):String
                        {
                            return "http://localhost/mydatapath/" + item.imagelink;
                           // how to use this.parentApplication.dataPath here
                        }
                    ]]>
                </fx:Script>
            </s:IconItemRenderer>
        </fx:Component>
    </s:itemRenderer>

</s:List>

parentApplication.dataPath変数は、サーバーのIPを格納します。アプリケーションのいくつかの場所で同様の機能を使用しているため、ローカルホストから実際のサーバーに移動するときに、すべての場所でIPを変更する必要があります。使用する

 this.parentApplication.dataPath + item.imagelink

コンパイル時エラーが発生します。それで、そのような関数内で外部/グローバル変数を使用することは可能ですか?

4

2 に答える 2

1

メインのアプリケーションをモデルリポジトリとして使用していると思います。他の場所(おそらくシングルトンまたは注入されたインスタンス)に含まれているモデルを使用します。とにかく、 FlexGlobals.topLevelApplicationメインアプリケーションへの参照が含まれています。

于 2012-10-04T06:47:52.840 に答える
0

myIconFunctionを公開することで問題を解決しました

public function myIconFunction(item:Object):String
                    {
                        return this.parentApplication.dataIP + item.imagelink;
                       // works
                    }
于 2012-10-04T07:35:12.710 に答える