原创:flex 事件的注意事项!

  1. 事件的定义 (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 }
  2. 事件的监听只能是 function,而不能是 object 了。
  3. 事件的监听一定要在发送执行之前定义。
  4.  在事件中添加自己代码的地方
    1. 巧用 IEventDispatcher 接口和 EventDispatcher 类,这些在黑羽的 blog 上写的比较详细。
    2. 继承 EVENT 类的时候,进行添加,个人认为在事件类里主要是指定事件类型和在发送中要运送的数据。
    3. 当然是事件主要用处了,就是在监听器里加上要执行的事件。


FireYang 2006-12-01 15:59 发表评论