0

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

4

2 回答 2

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");
        }
    }
}
于 2012-08-31T08:39:53.860 回答
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");

        }
于 2013-08-30T20:50:44.920 回答