as3:如何让MovieClip停止

时间:2010-01-19 14:04:08

标签: flash actionscript-3 movieclip

我正在开发一个Flash项目,其中所有代码都在外部Document.as文件中。

如何设置在加载其他MovieClip之前运行并完成的介绍MovieClip?现在发生的事情是剪辑加载Document类中的所有其他内容(内容,UI等)。我想要介绍剪辑运行,停止然后继续将文档中的其余代码。

我尝试在剪辑上使用stop方法,但似乎什么也没做,只需将MovieClip放入播放循环中。

感谢。

2 个答案:

答案 0 :(得分:1)

在您的文档类中,您可以访问可在时间轴的第一帧中找到的任何MovieClip。 例如,放置在第一帧中的实例名称为“myClip”的动画片段,您可以使用以下代码访问它:

package  
{
    import flash.events.Event;
    import flash.display.MovieClip;

    public class Document extends MovieClip 
    {
        public var myClip:MovieClip;

        public function Document()
        {
            addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event) : void 
        {
            myClip.stop();
        }
    }
}

另一方面,您可以从闪存中的时间轴访问文档类范围。调用你定义的公共函数Document“functionAtDocument”看起来像这样:

Document(this).functionAtDocument();

Document类中的代码:

package  
{
    import flash.display.MovieClip;

    public class Document extends MovieClip 
    {
        // ... missing some code
        public function tracer():void
        {
            trace ('call from flash timeline');
        }
    }
}

考虑到这一点,我可以前后移动,从时间线向课堂发送值,并操纵任何生活在那里的动画片段。

答案 1 :(得分:1)

您可以使用停止操作定位介绍MovieClip。但我会建议这样的事情:

class documentOfFLa extends Sprite {
     public var introMC:MovieClip;           // the introduction animation
     public var restOfAnimation:MovieClip;   // whatever is after the intro
     function documentOfFLa() {              // constructor
          introMC.play();
          restOfAnimation.stop();
     }
     public function continueParent():void {  // call this at end of intro
          restOfAnimation.play();
          introMC.stop();
          removeChild(introMC);
     }
}

...在介绍动画结束时,在时间轴上调用类似的内容:

this.parent["continueParent"]();

我知道这是黑客攻击,但实施起来会很快。然后你可以清理它......