【问题标题】:Flash actionscript 3 addFrameScript not working properlyFlash actionscript 3 addFrameScript 无法正常工作
【发布时间】:2012-08-29 19:52:15
【问题描述】:

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

【问题讨论】:

  • 我不会说它不可靠,请发布您的代码,因为问题可能在于您如何尝试完成此操作。
  • 您是否尝试在 Flash Pro 中创建的影片剪辑上调用 addFrameScript()? Flash Pro 将在构造函数中生成对 addFrameScript() 的调用。这些最终可能会覆盖您自己的处理程序。

标签: actionscript-3 movieclip


【解决方案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");
        }
    }
}

【讨论】:

    【解决方案2】:

    根据我的经验,它并非不可靠。但是语法非常关键,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");
    
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      • 2015-01-31
      • 2017-07-25
      • 2015-09-03
      • 1970-01-01
      • 2017-05-04
      相关资源
      最近更新 更多