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

私の経験では信頼性が低いわけではありません。ただし、構文は非常に重要です。フラッシュは、このタイプの構文の問題に対してエラーをスローしません。

スニペット:

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 に答える