原创:flex 事件的注意事项!
- 事件的定义 (new Event),发送 (dispatchEvent) 和监听 (addEventListener) 都应该在类的本身或由这个生成的对象上。
- 自定义事件(为了便于理解这里用中文,发现居然可以,呵呵-_-!)
1 package
2 {
3 import flash.events.Event;
4 public class EatEvent extends Event
5 {
6 public static const EAT:String = " 吃饭 ";
7 public function EatEvent(type:String)// 其他属性先不考虑
8 {
9 super(type);
10 trace(" 定义吃饭的时候执行,比如准备酒菜!");
11 }
12 }
13 } - 调用事件
1 package
2 {
3 import flash.display.Sprite;
4 import flash.events.Event;
5 import flash.events.EventDispatcher;
6
7 public class people extends Sprite
8 {
9 public var eatEvent:EatEvent;// 定义一个 “吃饭” 的事件
10 private var patch:EventDispatcher;
11 public function people()
12 {
13 this.addEventListener(EatEvent.EAT,eatHalder);
14 eatEvent = new EatEvent(EatEvent.EAT);// 创建事件对象
15 dispatchEvent(eatEvent);// 发送
16 }
17 private function eatHalder(e:Event):void
18 {
19 trace(" 知道了,马上就来了!");
20 }
21 }
22 }
- 自定义事件(为了便于理解这里用中文,发现居然可以,呵呵-_-!)
- 事件的监听只能是 function,而不能是 object 了。
- 事件的监听一定要在发送执行之前定义。
- 在事件中添加自己代码的地方
- 巧用 IEventDispatcher 接口和 EventDispatcher 类,这些在黑羽的 blog 上写的比较详细。
- 继承 EVENT 类的时候,进行添加,个人认为在事件类里主要是指定事件类型和在发送中要运送的数据。
- 当然是事件主要用处了,就是在监听器里加上要执行的事件。
- 巧用 IEventDispatcher 接口和 EventDispatcher 类,这些在黑羽的 blog 上写的比较详细。