我已经扩展了SkinnablePopUpContainer以在移动应用程序中创建一个弹出窗口。但我不知道如何将主视图中定义的变量传递给此组件。我的代码如下所示
<fx:Declarations>
<fx:Component className="Alert">
<s:SkinnablePopUpContainer>
<s:Button label="OK" click="close()"/>
<s:SkinnablePopUpContainer>
<fx:Script>
<![CDATA[
private function setMetaDataXML(metaDataXML:XML):void{
var temp = metaDataXML;
}
]]>
</fx:Script>
</fx:Component>
</fx:Declarations>
---主要观点继续 以下是我从主视图点击按钮时调用组件的方法:
click="(new AlertMsg()).open(this, false)"
现在我只想从主视图调用setMetaDataXML并传递值。我怎样才能做到这一点?谢谢
答案 0 :(得分:0)
我建议您在单独的mxml文件中创建组件,或者在纯AS3组件中创建更好的组件。要执行您想要执行的操作,您可以在脚本区域中为该click事件创建一个处理函数,并在其中分配组件的实例,然后在调用open之前调用任何方法,如:
click = "clickHandler()"
----- inside your script
function clickHandler : void {
var a : AlertMsg = new AlertMsg();
a.setMetaDataXML("foo");
a.open(this,false);
}
我还建议你声明隐式setter和getter AS3 way