自定义Flex事件,实现组件间传递事件

1.首先定义一个Event类,假设类名为PhotosEvent。

packagecom.exhdLib
{
        import flash.events.Event;
        //自己申明的时间继承于Event类
        public class PhotosEvent extends Event
        {
              //这里是这个文件的核心,可以扩展多个事件,形成事件列表,即申明事件名称
              //在事件后点就会出现在提示里,很方便。
             public static const PAUSEMOVE:String = "PauseMove";
             //这里前三个参数是继承于Event类,后面的myStr是自己定义的事件参数,可以定义多个参数
             public function PhotosEvent(type:String,bubbles:Boolean=false, cancelable:Boolean=false, myStr:String=null)
             {
                 if(myStr!=null) _myStr=myStr;
                 super(type, bubbles, cancelable);
             }
            private var _myStr:String;
     

            //下面两个方法都是定义事件的属性
            public function getmyStr():String
           {
                 return _myStr;
           }
           Public function set myStr(myStr:String):void
          {
                _myStr=myStr;
          }
     }

}



2.然后“调用”,在控制条(ToolBar)里相应的地方,写派发的事件。


//我们调用的事件,就是在PhotosEvent类里定义好的,清楚吧。
//注意前面要引用一下PhotosEvent类
dispatchEvent(new PhotosEvent(PhotosEvent.PAUSEMOVE));


3.最后“响应”,有两种方法:
  一种是添加监听事件,在Main.mxml里添加如下代码
    
import com.exhdLib.PhotosEvent;
import flash.events.Event;
       
private function Init():void
{
Toolbar.addEventListener(PhotosEvent.PAUSEMOVE,PausePhoto);
}
private function PausePhoto(Event:PhotosEvent):void
{
         //dosomthing
}
        
 一种是在ToolBar组件里增加响应方法:
//注意红色的必须和PhotosEvent里的事件名称相同PauseMove
<mx:Metadata>
       [Event(name="PauseMove", type="com.exhdLib.PhotosEvent")]
</mx:Metadata>
    
 这样就可以在Main.mxml直接调用这个方法了
 <ToolBar:BarContral id="Toolbar" PauseMove="doSomethingCode" 
width="100%" height="20%"XML_URL="data/photo.xml"/>
    两种方法效果一样,就看个人喜好了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值