Actionscript 3 as3如何跟踪哪个movieclip正在调度事件

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

我在做一个fps游戏。游戏包含多个敌人。但我把这部电影叫做《敌人》。这部电影剪辑了火灾事件,减少了玩家的生命。但我需要知道哪个电影剪辑是在安排活动。我随机添加了敌人,我需要知道刚刚开火的敌人的位置。这里有一些代码可能会有帮助

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,事件从哪里发送…我之前检查过,它显示我的根类,我在哪里捕获事件,我需要电影剪辑,活动从哪里开始。。。