自定义事件

自定义事件

    记得第一次尝试用Flash做游戏时,教程所讲最重要的一点是利用Flash的自定义事件机制实现观察者模式,下面是一个子弹打小球的例子。

 

Main类

var ball=new Ball(this);
ball.addEventListener("destroy",ballDestroy);
ballArr.push(ball); //添加进数组

private function ballDestroy(e:Event):void{
for(var i in ballArr){
if(ballArr[i]==(e.target as Ball)){
ballArr.splice(i,1);
break;
}
}
}

    在主控制类建立球对象的同时添加其被子弹击中的事件监听。当引发事件"destroy"时,执行ballDestroy函数。

 

    下面的伪代码也是在主控制类Main中。

if(子弹对象.hitTestObject(球对象)){
球对象.hitDestroy();
}

Ball类

public function hitDestroy():void{
this.dispatchEvent(new Event("destroy"));
}

    当子弹对象和球对象碰撞时执行Ball类中的hitDestroy函数,引发事件"destroy"。

posted @ 2011-11-28 15:49  扎克  阅读(161)  评论(0编辑  收藏  举报