2010-01-19 52 views
1

我正在開發一個Flash項目,其中所有代碼都位於外部Document.as文件中。as3:如何讓MovieClip停止

我該如何設置一個在其他動畫片段加載之前運行並完成的介紹MovieClip?現在發生的情況是剪輯與Document類(內容,UI等)中的所有其他內容一起加載。我想讓介紹片段運行,停止並繼續執行Document中的其餘代碼。

我試過在剪輯上使用stop方法,但它似乎什麼都不做,只是把MovieClip放入回放循環。

謝謝。

+0

你可以發佈一些你的代碼有關的movieClips?下面還有很好的建議... – 2010-01-19 15:45:18

回答

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(); 
     } 
    } 
} 

在另一方面,你可以訪問您記錄從類範圍的時間表在閃光燈。呼喚你文檔「functionAtDocument」定義的公共函數看起來像這樣:

Document(this).functionAtDocument(); 

在你的文檔類代碼:

package 
{ 
    import flash.display.MovieClip; 

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

考慮到這一點我的東西,你可以去前進和後退,從時間線向班級發送值,並操縱任何生活在那裏的動畫片段。

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"](); 

我知道這是黑客十歲上下,但它將會很快實施。後來你可以清理它...