Flex中自定义事件

    事件是一个非常有用的功能,通常用于信息传递交互大大提高程序编写的灵活性。在高级语言中都会集成这方面特性; Flex也不例外几乎所有控件中都集成了大量的事件,如果ButtonClick事件等。但实际应用中控件自有的事件是不能满真实需要的,特别在自己编写自定义控件时,自定义控件内部信息的改变如何及时通知所在的容器变得很更要;这个时候自定义事件就起到它的作用。

    Flex中定义事件有两中情况,分别是ActionScriptMXML中定义。

    ActionScript中定义:

       [Event(name="myEnableEvent", type="flash.events.Event")]

public class MyComponent extends UIComponent

{

           ...

}

MXML中定义:

<mx:Metadata>

    [Event(name="DataChange", type="DataChangeEvent")]

</mx:Metadata>

    DataChangeEvent事件参数的定义:

  1. import flash.events.Event;
  2. public class DataChangeEvent extends flash.events.Event
  3. {
  4.        public function DataChangeEvent()
  5.        {
  6.               super("DataChange");
  7.        }
  8.        public var Data:Object;
  9. }

 

  1. 在自定义控件中定义和触发事件:
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" width="212" height="56">
  4.  <mx:Metadata>
  5.         [Event(name="DataChange", type="DataChangeEvent")]
  6.     </mx:Metadata>
  7.  <mx:Button label="Button" click="Change()"/>
  8.        <mx:Script>
  9.               <![CDATA[
  10.                      function Change():void
  11.                      {
  12.                             this.dispatchEvent(new DataChangeEvent());
  13.                      }
  14.               ]]>
  15.        </mx:Script>
  16. </mx:Form>
  17. 容器接收相关自定义控件事件:
  18. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
  19.        
  20.        <ns1:EmployeeCombo x="146" y="132" DataChange="onChange(event)" >
  21.        </ns1:EmployeeCombo>
  22.        <mx:Script>
  23.               <![CDATA[
  24.                      import mx.controls.Alert;
  25.                      function onChange(e:DataChangeEvent)
  26.                      {
  27.                             
  28.                      }
  29.               ]]>
  30.        </mx:Script>
  31. </mx:Application>

 

其实自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值