将数据从视图传递到flex中的自定义组件

时间:2014-04-30 05:42:43

标签: flex

我已经扩展了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并传递值。我怎样才能做到这一点?谢谢

1 个答案:

答案 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

相关问题