1

当我离开特定框架时,​​我真的需要一些 AS3 脚本来运行某些功能。

我的原因是在我退出包含 FLV 播放的帧后,设置一些功能来停止视频并恢复我的 mp3 播放器的声音。


我使用这个脚本,它在 FLash 投影仪中工作得很好,但是 stage.invalidate(); 在我尝试退出 flv 播放帧后,导致第三方应用程序制造商(如 Swfkit 和 Zinc)没有响应。

这是我的脚本:

stage.invalidate();

mene.addEventListener(Event.RENDER,exitingF);
mene.addEventListener(Event.REMOVED_FROM_STAGE, removedF);

function exitingF(e:Event):void{

            controller.gotoAndStop(2);
            pausePosition = sndChannel.position; 
            sndChannel.stop();
            isPlaying = false;
}


function removedF(e:Event):void{
            mene.stop();
            controller.gotoAndStop(1);
            sndChannel = soundClip.play(pausePosition);
            isPlaying = true;
}

我所需要的只是另一种说法,即在退出特定帧后立即运行一些脚本(转到另一个帧)

4

1 回答 1

0

尝试使用该addFrameScript()功能。

它是这样工作的:OBJECT.addFrameScript(FRAME, CALLBACK)

这会将脚本添加到时间轴,并且只要到达指定的帧,就会执行回调。

这是我发现的一个例子:http: //blog.newmovieclip.com/2007/04/30/add-a-frame-script-addframescript-dynamically-in-flash-cs3/

package com.newmovieclip{
import flash.display.MovieClip;
public class Main extends MovieClip {
public var myStar:Star;
         //constructor
public function Main() {
    //place a star on stage
    myStar = new Star();
    addChild(myStar);
    //add script to star timeline on frame 5
    myStar.addFrameScript(4,frameFunction); // (zero based)
}
private function frameFunction():void {
    trace("Executing  code for star Frame  5" );
    //delete frame script by passing null as second parameter
    myStar.addFrameScript(4,null);
        }
}
}

请记住,如示例中的内联注释中所述,帧是基于 0 的

于 2013-08-21T18:55:53.357 回答