Actionscript 3 as3如何跟踪哪个movieclip正在调度事件
我在做一个fps游戏。游戏包含多个敌人。但我把这部电影叫做《敌人》。这部电影剪辑了火灾事件,减少了玩家的生命。但我需要知道哪个电影剪辑是在安排活动。我随机添加了敌人,我需要知道刚刚开火的敌人的位置。这里有一些代码可能会有帮助Actionscript 3 as3如何跟踪哪个movieclip正在调度事件,actionscript-3,movieclip,dispatchevent,Actionscript 3,Movieclip,Dispatchevent,我在做一个fps游戏。游戏包含多个敌人。但我把这部电影叫做《敌人》。这部电影剪辑了火灾事件,减少了玩家的生命。但我需要知道哪个电影剪辑是在安排活动。我随机添加了敌人,我需要知道刚刚开火的敌人的位置。这里有一些代码可能会有帮助 dispatchEvent(new Event('Enemy_Fired')); // this event is dispatching from enemy movieclip this.addEventListener('Enemy_Fired',ReduceLif
dispatchEvent(new Event('Enemy_Fired')); // this event is dispatching from enemy movieclip
this.addEventListener('Enemy_Fired',ReduceLife);
public function ReduceLife(e:Event){
life--;
var currentLife:int = life * lifeRatio;
if(life<1){
Game_Over();
//game_completed();
} else {
sview.playerhit.gotoAndPlay(2);
sview.lifebar.gotoAndStop(100 - currentLife);
sview.health.text = String(currentLife);
}
//Here i need to know this event dispatched from which enemy
}
提前感谢您可以使用以下方法获取对发送事件的对象的引用:
e.target
从这行代码中可以看出,似乎父级正在调度事件
DispatchEvent新事件“敌人开火”;//这件事是从敌人的电影里传来的
因为dispatchEvent与this.dispatchEvent相同,这意味着您的根类正在分派事件
你需要把它改成这个
youreneymovieclip.dispatchEvent新事件“敌人开火”,对,错
请注意,我将事件的气泡属性设置为true,将可取消属性设置为false。气泡表示您的事件将在显示链上出现气泡。这很重要,因为您正在根类中侦听事件,它比发送事件的movieclip高一级
请参见此处事件类的构造函数:
在eventlistener中添加以下内容
e.stopImmediatePropagation();
这将阻止事件在displaychain上冒泡,从而节省应用程序的性能。您可以使用以下方法获取对调度事件的对象的引用:
e.target
从这行代码中可以看出,似乎父级正在调度事件
DispatchEvent新事件“敌人开火”;//这件事是从敌人的电影里传来的
因为dispatchEvent与this.dispatchEvent相同,这意味着您的根类正在分派事件
你需要把它改成这个
youreneymovieclip.dispatchEvent新事件“敌人开火”,对,错
请注意,我将事件的气泡属性设置为true,将可取消属性设置为false。气泡表示您的事件将在显示链上出现气泡。这很重要,因为您正在根类中侦听事件,它比发送事件的movieclip高一级
请参见此处事件类的构造函数:
在eventlistener中添加以下内容
e.stopImmediatePropagation();
这将阻止事件在displaychain上冒泡,从而节省应用程序的性能。我之前检查过,它显示我的根类,我在其中捕获事件,我需要movieclip,事件从哪里发送…我之前检查过,它显示我的根类,我在哪里捕获事件,我需要电影剪辑,活动从哪里开始。。。