Flex 3 - 每次打开时在弹出组件中调用一个函数

时间:2012-01-03 16:48:39

标签: actionscript-3 flex popup flex3

对于我确定的人来说,这将是一个非常简单的方法。我只需要知道每次弹出窗口打开时我都会调用一个函数的事件。

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"  width="400" 
height="120" title="Change Offer/Event Name" showCloseButton="true" close="PopUpManager.removePopUp(this)"
horizontalScrollPolicy="off" verticalScrollPolicy="off" creationComplete="init()">
<mx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.events.CloseEvent;
        import mx.managers.PopUpManager;

        private function init():void{
            txtNewName.text = parentApplication.cmbOfferName.selectedItem.TEMPLATENAME;
        }
    ]]>
</mx:Script>

<mx:Canvas width="374" height="74" horizontalScrollPolicy="off" verticalScrollPolicy="off">
    <mx:TextInput id="txtNewName" x="72" y="16" width="240"/>
    <mx:Label x="6" y="18" text="New Name"/>
    <mx:Button x="317" y="16" label="Ok" width="47" click="checkName()"/>
</mx:Canvas>

我在creationComplete中调用了init()函数,它会在第一次打开窗口时引入值,但每次打开弹出窗口时我都需要它来调用该函数。我试过,激活,creationComplete,addedToStage,这些都不起作用。

哦,只是要注意,我不能将文本输入的文本属性设置为可绑定到组合框,因为我可能会从多个组合框中选择,具体取决于我正在查看的画布。

先谢谢

1 个答案:

答案 0 :(得分:0)

我设法自己解决了。事实上我确实在TitleWindow组件中使用了'addedToStage'。使用addedToStage的唯一问题是我试图在弹出窗口中填充textinput,因此尚未呈现。为了解决这个问题,我简单地添加了一个可绑定变量,我将所选的组合框值添加到该变量中,并将该变量添加为textInput上文本字段的数据提供者。