Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 ActionScript-获取事件调度器的函数_Actionscript 3_Events_Event Handling_Get_Dispatcher - Fatal编程技术网

Actionscript 3 ActionScript-获取事件调度器的函数

Actionscript 3 ActionScript-获取事件调度器的函数,actionscript-3,events,event-handling,get,dispatcher,Actionscript 3,Events,Event Handling,Get,Dispatcher,我的代码中有两个函数可以分派TweenEvent。每个函数分派相同的tween并添加相同的TweenEvent.MOTION\u FINISH事件侦听器。但是,事件侦听函数必须根据调度事件的函数进行操作 是否可以从事件侦听器获取事件调度器的功能?如果没有其他优雅的解决方案,我可以使用一个标志来实现这一点 public function FirstTweenAction():void { myTween = new Tween(/* tween stuff */);

我的代码中有两个函数可以分派TweenEvent。每个函数分派相同的tween并添加相同的TweenEvent.MOTION\u FINISH事件侦听器。但是,事件侦听函数必须根据调度事件的函数进行操作

是否可以从事件侦听器获取事件调度器的功能?如果没有其他优雅的解决方案,我可以使用一个标志来实现这一点

public function FirstTweenAction():void
     {
     myTween = new Tween(/* tween stuff */);
     myTween.addEventListener(TweenEvent.MOTION_FINISH, myTweenEventMotionFinishHandler);
     }

public function SecondTweenAction():void
     {
     myTween = new Tween(/* tween stuff */);
     myTween.addEventListener(TweenEvent.MOTION_FINISH, myTweenEventMotionFinishHandler);
     }

private function myTweenEventMotionFinishHandler(evt:TweenEvent):void
     {
     evt.currentTarget.removeEventListener(TweenEvent.MOTION_FINISH, myTweenEventMotionFinishHandler);

     if (/* Event was fired from FirstTweenAction() */)
        trace("Dispatcher is FirstTweenAction()");
        else     
        trace("Dispatcher is SecondTweenAction()");
     }

您无法找出tween是从哪个方法初始化的。相反,创建两个tween成员变量并检查事件的目标对象:

if (evt.target == myFirstTween) doSomething();
else doSomethingElse();
或调用两个不同的事件处理程序:

public function FirstTweenAction():void
     {
     myTween = new Tween(/* tween stuff */);
     myTween.addEventListener(TweenEvent.MOTION_FINISH, myFirstTweenEventMotionFinishHandler);
     }

public function SecondTweenAction():void
     {
     myTween = new Tween(/* tween stuff */);
     myTween.addEventListener(TweenEvent.MOTION_FINISH, mySecondTweenEventMotionFinishHandler);
     }

哦对不起,我把问题写错了。两个孩子的名字都一样。我已经编辑了这个问题。