★我是这样使PopUpManager创建的子级元素与父级元素通讯的

      Flex和AIR 2007-10-4 11:9

对PopUpManager不熟悉? 请看: http://blog.5d.cn/user39/riahome/200709/437001.html

      我们使用 PopUpManager创建一个子级弹出窗口: 
      PopUpManager.createPopUp(this, loginAlert, true)

      通常会结合自定义的 MXML Component 一起使用:
       var loginAlertWindow :loginAlert = loginAlert(PopUpManager.createPopUp(this, loginAlert, true));
 
      上述例子, 我自定义了一个名为 loginAlert 的Component, 假如这个是用来登陆之用的, 里面有这些东西:
              用户名输入框: <mx:TextInput id="userName"/>
              密码输入框: <mx:TextInput id="pwd" displayAsPassword="true"/>
              提交按钮: <mx:Button id="loginBtn" label="Login" click="loginBtnClick();"/>
              发送数据的HTTPService控件: <mx:HTTPService id="userLogin" url="http://www.RiaHome.cn" />

      的确, 我们在父级里可以这样来获取 loginAlert 里的数据, 譬如获得用户名输入框里的数据: loginAlert.userName.text 。但我希望一旦提交数据成功后, 也就是登陆成功后, 告诉父级需要干什么. 好了, 说到这样, 有经验的人可能有很多种不同的方法来解决这样的问题, 但我的方法是接下来介绍的那种, 如果大家有更好的办法, 请告诉一下, Thank you! ^_^

      其实, 我的方法很简单, 只需在父级里添加侦听器, 侦听 loginAlert 里HTTPService控件 RESULT 事件罢了:
      loginAlertWindow.userLogin.addEventListener(ResultEvent.RESULT, loginOKHandler);
需要父级干什么, 就把命令代码写在 loginOKHandler 函数里就行了.


标签集:TAGS:Flex AS3
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}