flex中dispatchEvent的用法(自定义事件) .

Evevt和EventDispatcher类在as3的事件机制中是很重要的角色,dispatchEvent()是EventDispatcher类的一个事件发送方法,它可以发送出Event类或其子类的实例,在as3中所有的显示对象都可以发送事件,因为as3中所有的显示对象都是EventDispatcher子类DisplayObject的实例。

   发送事件有三种方式:继承EventDispatcher,如sprite等显示对象、复合EventDispatcher或其子类、实现IEventDispatcher接口。

   个人认为复合EventDispatcher在实际应用中用的比较多,没有找到合适例子,自己写了一个很简单的,仅供参考,为了演示把简单的问题复杂话了,首先画一个矩形,点击矩形后发送一个事件,矩形接收事件后alpha变为0;

自定义事件:

package{
   import flash.events.Event;

   public class MyEvent extends Event{
         public static const ALPHA:String = "alpha";
            public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
            super(type, bubbles, cancelable);
            }
      }
}



package{
import flash.display.Sprite;

public class Sample extends Sprite{
       public function Sample(){
         this.graphics.beginFill(0xff6600);
         this.graphics.drawRect(50,50,100,50);
         this.graphics.endFill();
         this.addEventListener(MyEvent.ALPHA,blackHandler);
   }
   private function blackHandler(evt:MyEvent){
         this.alpha = 0;
   }
}
}

主类:

package{
   import flash.display.Sprite;
   import flash.events.MouseEvent;

   public class Main extends Sprite{
             private var sample:Sample;
             public function Main(){
            sample = new Sample();

            //注册事件侦听器
            sample.addEventListener(MouseEvent.CLICK,clickHandler);
            addChild(sample);
       }
       private function clickHandler(evt:MouseEvent){

             //发送事件
            sample.dispatchEvent(new MyEvent(MyEvent.ALPHA));
       }
    }
}

注:在as3中只有事件的发送者才能侦听事件。在Main类中sample实例发送的事件也只有sample注册的侦听器才能侦听,在Sample中的this正是指向了sample。

这个例子很简单,只是为了展示事件的发送接收,你还可以扩展自定义的Event类,带上你想发送的参数

转载于:https://www.cnblogs.com/amylis_chen/p/3848762.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

菜鸟超级进口大仓618首度亮相!跨境商品也能当日次日达

6月12日下午3点40分,来自南京的一名用户收到了由宁波保税仓发出、圆通速递配送的雀巢咖啡,这距离他在天猫国际上下单仅过去4小时。 天猫618在昨日迎来进口日,进口销量火爆上升。作为国内最为先进的跨境进口仓,菜鸟超级大仓在本次大…

频域/s域/z域三大变换的发展史及其联系

本文主要介绍三大变换(傅里叶变换、拉普拉斯变换及Z变换)的发展史及其之间的联系。

Tomcat8.0.21登录时忘记用户名和密码

大概是这学期开学没多久吧,4月份的时候,为了学习javaEE,装了Tomcat。过了这么久早就忘记用户名和密码了,所以无法进入Tomcat的管理界面。百度(其实我也很想用google)了一堆,几乎都是修改用户配置…

二元隐函数求二阶偏导_在线计算专题(03):具体、抽象函数的导数、微分与方向导数的计算...

导数与微分是微积分内容的基础,就计算来说一元函数与多元函数的导数的计算思想一致. 不管是一元函数还是多元函数,导数、偏导数的计算都是将函数视为求导变量的一元函数求导数。微分在描述形式略有区别,但是其计算方法还是一样,只…

android更换工具链

欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e73 android编译系统是跟随android源码一起发布的,使用了gcc编译器,也就是所谓的交叉编译环境。android-4.2里用的编译器是gcc4.6,本篇升级gcc4.6到gcc4.6,修…

频域/s域/z域三大变换的性质对比

本文主要介绍三大变换(傅里叶变换、拉普拉斯变换及Z变换)的性质对比及其常用信号变换。

Java系列(1) JavaEE架构

JavaEE是开发分布式应用的工业标准,Weblogic,BES,Tomcat等是比较常见的JavaEE服务器,严格来说Tomcat没有实现全部的JavaEE规范,只能算是Servlet容器。我们从一幅Spec文档上的架构图,粗略了解JavaEE的基本结构。该结构图表达了JavaEE各元素的逻…

协整检验r语言代码_R语言时间序列分析实例

#加载数据xread.table(file.choose())#生成时间序列对象xtimeseries#画时间序列图plot.ts(xtimeseries)#增加线性拟合曲线abline(lm(xtimeseries~time(xtimeseries)))1、分解时间序列分解一个时间序列意味着把它拆分成构成元件,一般序列包含一个趋势部分、一个不规则…

pat1043. Is It a Binary Search Tree (25)

1043. Is It a Binary Search Tree (25) 时间限制400 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

微软待办应用更新

微软做了一些更改和优化来改进微软待办。 为了在所有设备上获得最佳体验,需确保移动和桌面微软待办2021 年 12 月 31日之前的版本为 2.49 或更高版本,否则微软待办不再支持跨设备同步,但仍然能脱机使用。 桌面版的微软待办应用下载地址为&…

出租WiFi到底靠不靠谱?

创业是一种心态,也是不断的探索,他融入我们的生活,从日常中积累,从小微处启航。 一、背景交代 最近在换工作,本周搬到新租的单身公寓,空间不大,倒是干净整洁。委托租房中介帮忙开通宽带&#xf…

AD20学习笔记1---元件库的创建

前言: 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设计视频教程》,视频地址:Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设…

nodejs环境搭建与express安装配置

一、NPM 1、下载nodeJS 下载地址:https://nodejs.org/en/download/ 因为我的系统是Linux 的,所以下载已经编译好的Linux,nodejs tar包 3、下载完成过后放到/usr/local/下面 4、解压:因为这个包不是gz的包所以解压 正确&#xff1a…

在vue中实现picker样式_基于Vue实现timepicker

主要用到的还是Vue的基本知识而已,不过要想到的细节很多。先放效果,点击上框,显示timepicker。而且可以根据点击的是时还是分来改变圆盘的数字。这里我用了两个组件,和,这里的时和分的数值我挂在了根实例中&#xff0c…

玩玩

金字塔一样输出字母&#xff0c;如 输入 d a a b a a b c b a a b c d c b a 代码实现 #include<stdio.h> int main(void) { char z; int j,t,k; scanf("%c",&z); t0; if(z>a&&z<z) { for(int i0;i<z-a;i) { for(kz-a-t;k…

总结界面框架_UI_Adapter

本人定期更新经典案例及解决方案如有疑问请联系我QQ1822282728 -- 277627117 下面是常用到的ui Demo安卓三级筛选菜单listview&#xff08;非常经典&#xff09; http://download.csdn.net/detail/zillvip/9138975android地图应用&#xff08;路径规划&#xff0c;地理编码&…

AD20学习笔记2---原理图绘制及编译检查

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

git如何设置master分支的权限_Git 从master 分支拉新分支开发

一、 切换到被copy的分支(master)&#xff0c;并且从远端拉取最新版本$git checkout master$git pull二、从当前分支拉copy开发分支$git checkout -b devSwitched to a new branch dev三、 把新建的分支push到远端$git push origin dev四、拉取远端分支$git pullThere is no tr…

Yii框架 phpexcel 导出

一、说明 之前使用的是PHPExcelXML包实现的数据导出&#xff0c;由于导出的文件扩展名为“.xls” 在office2007上带不开&#xff0c;报如下图错误&#xff08;用 WPS都能打开&#xff09; 因此&#xff0c;此次采用了 PHPExcel包 不仅支持生成Excel&#xff08;.xls&#xff09…

慎用stl中的erase的返回值

在windows下的VC编译或者Mac OX的XCode下编译也许不会出问题。但是在linux下可能就会挂掉。 比如我上一篇里的poj4093出现了编译错误 2007120.8890/Main.cc: In function ‘int main()’: 2007120.8890/Main.cc:50:44: error: no match for ‘operator’ in ‘itr1 a.std::set…