我试图在AS3中从一帧移动到另一帧时获得一个事件。
我已经尝试过它总是打电话的EXIT_FRAME
。
当从一帧移动到另一帧时,我需要获得状态。
addEventListener(Event.EXIT_FRAME,exitfunc);
function exitfunc(e:Event):void{
trace("EXIT_FRAME");
}
答案 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事件就足够了。