Flash actionscript 3 addFrameScript无法正常工作

时间:2012-08-29 19:52:16

标签: actionscript-3 movieclip

我正在加载一个影片剪辑,并且动态地将帧脚本添加到影片的时间轴中。框架脚本似乎在某些时候工作,但有时它似乎跳过包含动态添加的框架脚本的整个关键帧。只是想知道MovieClip.addFramScript()是否只是不可靠,或者是否有其他人都遇到过这样的问题。

2 个答案:

答案 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");

        }