[AS3]AS3事件以及发送事件的范例
AS3可以自定义事件并在自己需要的时候发送事件,下面介绍一下如何可以简单的构建一个发送事件的实例(当只需要发送事件,而且对事件对象没要求的时候建议用这种方法)
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方法用来分发事件),分发事件后,侦听器就会生效。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...