Flex中自定义事件


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

 
       [Event(name="myEnableEvent", type="flash.events.Event")]
public class MyComponent extends UIComponent
{
           ...
}
在MXML中定义:

 
<mx:Metadata>
    [Event(name="DataChange", type="DataChangeEvent")]
</mx:Metadata>


 
DataChangeEvent事件参数的定义:

 
import flash.events.Event;
public class DataChangeEvent extends flash.events.Event
{
       public function DataChangeEvent()
       {
              super("DataChange");
       }
       public var Data:Object;
}


 
在自定义控件中定义和触发事件:

 
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" width="212" height="56">
 <mx:Metadata>
        [Event(name="DataChange", type="DataChangeEvent")]
    </mx:Metadata>
 <mx:Button label="Button" click="Change()"/>
       <mx:Script>
              <![CDATA[
                     function Change():void
                     {
                            this.dispatchEvent(new DataChangeEvent());
                     }
              ]]>
       </mx:Script>
</mx:Form>


 
容器接收相关自定义控件事件:

 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
      
       <ns1:EmployeeCombo x="146" y="132" DataChange="onChange(event)" >
       </ns1:EmployeeCombo>
       <mx:Script>
              <![CDATA[
                     import mx.controls.Alert;
                     function onChange(e:DataChangeEvent)
                     {
                           
                     }
              ]]>
       </mx:Script>
</mx:Application>


 
其实自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。
本文来源于: 杜增强.COM http://www.duzengqiang.com/blog/ , 原文地址:http://www.duzengqiang.com/blog/post/321.html


 

转载于:https://www.cnblogs.com/chocolate/archive/2009/04/08/1431892.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值