AS3自定义事件以及发送事件(1)——发送事件

一、目的

1、想:自定义类的时候,自定义类给舞台上面发送小

 

二、参考

1、AS3自定义事件以及发送事件(1)——发送事件

http://blog.sina.com.cn/s/blog_6471e1bb01010wxb.html

  • 总结:good:发现可以实现

 

AS3可以自定义事件并在自己需要的时候发送事件,下面介绍一下如何可以简单的构建一个发送事件的实例(当只需要发送事件,而且对事件对象没要求的时候建议用这种方法)

 

   其实AS3中只需要用到dispatchEvent(e:Event)方法就可以做到发送事件了(事件的发送者必须继承EventDispatcher类或者实现IEventDispatcher接口才能使用这个方法)

 

下面举一个简单的实例:

Game类:

package  {
 
 import flash.display.MovieClip;
 import flash.events.Event;
 
 
 public class Game extends MovieClip {

//MovieClip类继承了EventDispatcher所以可以调用
  static public const GAME_START:String = "gameStart";
  static public const GAME_OVER:String = "gameOver";
  
  public function Game() {
   // constructor code
   startGame();
  }
  
  public function startGame():void
  {
   //分发startGame事件
   dispatchEvent(new Event(GAME_START));
  }
  
  public function gameOver():void
  {
   //分发gameOver事件
   dispatchEvent(new Event(GAME_OVER));//新建事件传入String参数
  }
 }
}

文档类(EventDemo):

package  {
 
 import flash.display.MovieClip;
 import flash.events.Event;
 
 
 public class EventDemo extends MovieClip {
  
  public var game:Game;
  //其中1、2、3、4为执行顺序
  public function EventDemo() {
   // constructor code
   game = new Game();
   game.addEventListener(Game.GAME_START,gameStart);
   game.addEventListener(Game.GAME_OVER,gameOver);
   game.startGame();//调用分发startGame事件(1)
   game.gameOver();//调用分发gameOver事件(3)
  }
  
  protected function gameStart(e:Event):void
  {
   trace(e);//(2)
  }
  
  protected function gameOver(e:Event):void
  {
   trace(e);//(4)
  }
 }
}
在实例中,先在Game类中以属性的形式定义了事件名称(应该将名称定义为常量),然后再在Game类中定义了两个用于分发事件的dispatchEvent()并向其中传入Event对象。(注,用这种方法可以在其他任何需要的地方调用Game类中的startGame方法和gameOver方法用来分发事件),分发事件后,侦听器就会生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值