ActionScript_自定义事件
来源:互联网 发布:针孔摄像头监控软件 编辑:程序博客网 时间:2024/06/01 07:30
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。
- ActionScript_自定义事件
- ActionScript_读取XML文件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件:
- 自定义事件
- 自定义事件
- 自定义事件
- 自定义事件
- JQuery
- 输入输出流的重定向
- 控件用法
- kzalloc的故事
- 容器内 组件 流布局 float,如何撑开.
- ActionScript_自定义事件
- 客户满意与持续创新
- 【传智征文】 创造有价值的人生!
- 在ios扫描公共区域内wifi信息中,写了实现wifi扫描的一种方法,但是那种方法扫描出来的wifi信息不全,下面是扫描全部wifi信息的实现方法:
- PYTHON 对列表|字典|列表中多个字典排序
- 【腾讯鲜为人知的重武器3】首席体验官的刀锋
- PHP 数组排序 多维数组排序
- How to Add Windows 7 “God Mode” Shortcut in My Computer Context Menu?
- 【dos BAT】关于DOS的批处理学习过程 之四 获取当前目录