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

flex中dispatchEvent的用法(自定义事件) .相关推荐

  1. [Flex] Flex 控件类 的自定义事件添加

    NewClass源码摘要:本文记录了Flex中给控件和类加入自定义事件的步骤. 正文:虽然网上已经有很多类似的资料了, 不过还是想自己写一篇,作为存档. (一)给类A加入自定义事件FavPathDel ...

  2. Flex中的帧频和帧事件

    Flex程序是由两帧构成,第一帧用于加载程序和相关RSL等,第二帧才会执行swf. 进入第二帧后,FlashPlayer仍然按照指定的"帧频(时间间隔)"不断重新播放第二帧.这是F ...

  3. Flex中Tree的用法备忘(增删改查节点)

    <?xml version="1.0" encoding="utf-8" ?> <mx:Application xmlns:mx=" ...

  4. UE4 虚幻引擎,蓝图Custom Event自定义事件,Call In Editor 在编辑器中调用

    1.在Blueprint蓝图中,Custom Event自定义事件的Details细节面板中,打开Call In Editor编辑器中调用. 2.在Map关卡中的的Details细节面板,就可以直接点 ...

  5. 【JS】512- JS 自定义事件如此简单!

    在前端开发世界中,JavaScript 和 HTML 之间往往通过 事件 来实现交互.其中多数为内置事件,本文主要介绍 JS自定义事件概念和实现方式,并结合案例详细分析自定义事件的原理.功能.应用及注 ...

  6. js事件Event对象(自定义事件对象 CustomEvent)

    文章目录 一.参考 二.Event 接口介绍 2.1 事件分类 三. 创建过时Event不推荐 3.1 document.createEvent 3.1.1 语法`var event = docume ...

  7. 自定义事件详解以及实现有趣B站直播间弹幕轰炸功能

    案例:B站直播间弹幕轰炸跳过按键监听办法: var event = document.createEvent('Event'); event.initEvent('input', true, true ...

  8. Vue-组件自定义事件

    父组件使用props传递数据给子组件,子组件给父组件通信除了通过父组件提前给子组件传递一个函数,子组件使用该函数,利用传递参数的形式给父组件传值,回调在父组件中, 这里再提供一种方法:Vue的自定义事 ...

  9. 【Vue 快速入门系列】Vue数据实现本地存储、自定义事件绑定、全局事件总线、$nextTick的使用

    文章目录 一.本地存储 1.概念 2.接口 3.实际操作 二.自定义事件绑定 1.自定义事件使用过程 2.绑定自定义事件的语法 3.其他注意事项 三.全局事件总线 1.全局事件总线概念 2.全局事件总 ...

最新文章

  1. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 控制角色在真实的环境中寻路...
  2. javascript 手机号间隔显示 123 4567 8910
  3. jquery中获取元素的几种方式小结
  4. I had no sooner finished eating than went to toilet.
  5. centos yum安装_centos7上yum安装碰到的坑
  6. JavaScript-分支和循环
  7. jspdf html转换pdf,使用jspdf将HTML转换为pdf时出错
  8. 转:LruCache算法
  9. Team Foundation Server 2010 安装、部署与配置(一):安装计划 .
  10. Cookie、Session、Token、JWT分别是什么(四)
  11. 数据库零碎要点002---认识时序数据库
  12. 机器学习算法之KNN算法,python实现
  13. ANT的安装/配置笔记
  14. intern() 方法
  15. VS2012工具箱控件
  16. 孢子社群:今日推荐人工智能微信群:人脸识别人工智能
  17. iOS 三方app读取苹果健康数据
  18. 目 录 -- 项目管理知识体系指南(PMBOK指南)(第五版)
  19. 8.3 时间戳(Time Stamp)选项
  20. 并发处理同一个订单问题

热门文章

  1. 深圳php就业,传智播客深圳校区PHP04期毕业15个工作日就业率67.74%
  2. python 打开targz文件_Python下使用pandas打开excel文件并进行处理
  3. python2exe下载_py2exe下载 0.6.9.win32-py2.7-python转exe工具-pc6下载站
  4. 『数据库』数据库的查询可不是只知道Select就可以的--关系数据库系统的查询处理
  5. /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found 解决办法
  6. 光流法目标跟踪原理(不带公式)
  7. 农村民间借贷一分利息,有借条受法律保护吗?
  8. 使用蚂蚁借呗会影响房贷申请吗?
  9. 萨义德与巴伦博依姆关于音乐和文学的对话
  10. jquery全局变量_jQuery源码一个小细节,却很好地体现了性能优化的思想,很优秀...