加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:37:24 所属栏目:百科 来源:网络整理
导读:1.首先定义一个Event类,假设类名为PhotosEvent。 packagecom.exhdLib { ??????? import flash.events.Event; ? ? ? ? //自己申明的时间继承于Event类 ? ?????? public class PhotosEvent extends Event ? ? ? ? { ? ? ? ? ?????? //这里是这个文件的核心,

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"/> ? ? 两种方法效果一样,就看个人喜好了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读