是否可以在下面定义的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。由于我在应用程序的几个地方使用了类似的功能,因此当我从localhost移动到实际服务器时,它需要在每个地方更改IP。 使用
this.parentApplication.dataPath + item.imagelink
给出编译时错误。 那么可以在这样的函数中使用外部/全局变量吗?
答案 0 :(得分:1)
我相信您正在使用主应用程序作为模型存储库,我会选择其他地方包含的模型(可能是单例或注入实例)。无论如何,FlexGlobals.topLevelApplication
包含对主应用程序的引用。
答案 1 :(得分:0)
我通过将myIconFunction设为公开
解决了这个问题public function myIconFunction(item:Object):String
{
return this.parentApplication.dataIP + item.imagelink;
// works
}