移动到AS3中的其他帧时退出事件

时间:2015-03-03 09:38:48

标签: actionscript-3 flash events

我试图在AS3中从一帧移动到另一帧时获得一个事件。

我已经尝试过它总是打电话的EXIT_FRAME。 当从一帧移动到另一帧时,我需要获得状态。

addEventListener(Event.EXIT_FRAME,exitfunc); 
function exitfunc(e:Event):void{
 trace("EXIT_FRAME");
}

3 个答案:

答案 0 :(得分:1)

如Nagarajan建议的那样,您可以动态地将脚本添加到框架中。

例如在您的主要课程

package {
  import flash.display.MovieClip;

  public class Test extends MovieClip
  {
      public function Test()
      {
          this.addFrameScript(4,frameFunction); // (add script to frame 5, zero based)
      }

      private function frameFunction():void {
          trace ('Do something when play head enters frame 4')
      }
  }
}

答案 1 :(得分:0)

因为他们的名字具有误导性。当播放头退出帧时,Event.EXIT_FRAME不会执行一次。它反复执行。

同样,当播放头进入帧时,Event.ENTER_FRAME不会执行一次。它反复执行。

当播放头通过向帧添加函数调用进入帧时,您可以执行一个函数:

F(); //当播放头进入此帧时,附加到帧将调用函数f。还有其他方法可以做到这一点。

当播放头存在帧时,您可以通过使舞台无效并在执行goto时使用渲染事件来执行函数:

stage.invaidate();
this.addEventListener(Event.RENDER,ExitingF);
this.gotoAndPlay('whatever');
function exitingF(e:Event):void{
     // this code executes when this frame is exited and 'whatever' is rendered
    (=displayed);
}

答案 2 :(得分:-3)

只有一种好方法,但可能超出了你的技能水平。创建一个扩展MovieClip并覆盖gotoAndStop和gotoAndPlay方法的类,然后简单地让它们调度自定义事件(不要忘记调用super)。该自定义事件可以携带帧标签,索引等...您必须确保您的MovieClips / Document类实现该类,一切都将自动完成。 这将允许您跟踪何时离开帧并通过调用gotoAndStop或gotoAndPlay移动到另一帧。如果您只想跟踪正常的播放头移动,那么ENTER_FRAME事件就足够了。