我正在加载一个影片剪辑,并且动态地将帧脚本添加到影片的时间轴中。框架脚本似乎在某些时候工作,但有时它似乎跳过包含动态添加的框架脚本的整个关键帧。只是想知道MovieClip.addFramScript()
是否只是不可靠,或者是否有其他人都遇到过这样的问题。
答案 0 :(得分:1)
试试这段代码,
在时间轴上
//Movieclip instance name 'MC'
MC.addFrameScript(0 ,stopframe);
function stopframe():*
{
MC.stop();
}
或类文件(并使用标签名称)
package
{
import flash.display.MovieClip;
import flash.display.FrameLabel;
import flash.display.*;
public class MC extends MovieClip
{
private var labels:Object
public function MC()
{
labels = this.currentLabels;
for ( var i:int = 0; i < labels.length; i++ )
{
var framelabel:FrameLabel = labels[i];
labels[ framelabel.name ] = framelabel.frame
}
addFrameScript( labels["animstart"], animStart, labels["animend"] - 1, animEnd );
}
public function animStart():void
{
trace("animation start");
}
public function animEnd():void
{
trace("animation end");
}
}
}
答案 1 :(得分:1)
在我的经历中并非不可靠。但是语法非常关键,flash不会因此类语法问题而引发错误。
摘录:
addFrameScript((totalFrames-1),fn_frame); //Correct
addFrameScript((totalFrames-1),fn_frame()); //Incorrect, it will run right away and not on the last frame (the difference is the extra brackets)
public function fn_frame():void
{
trace("END");
}