2011-06-14 99 views
0

我想停下一部電影,當它進入最後一幀,我下面這樣做:停止影片剪輯

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

    public class MeiYi extends Sprite{ 
     private var mainMovie:MovieClip = new MeiYiMain(); //MeiYiMain is build in the library of flash cs4 

     function MeiYi():void{ 
      //stop at last frame 
      mainMovie.addEventListener(Event.ENTER_FRAME, stopMainMovie); 
      //trace(mainMovie.totalFrames); 
      //mainMovie.gotoAndStop(50); 
     } 

     private function stopMainMovie(evt:Event):void{ 
      //trace(mainMovie.currentFrame); 
      if (mainMovie.currentFrame == mainMovie.totalFrames){ 
       mainMovie.stop(); //stop 
      } 
     } 
    } 
} 

但這並沒有對我來說,沒有任何錯誤或我想要的東西。 它有什麼問題? 謝謝。

回答

2

一個簡單的方法就是把:

stop(); 

在影片剪輯(MeiYiMain)的最後一幀。您可以通過選擇它並按F9來啓動ActionScript面板。

還可參見live docs for class MovieCliptotalframes屬性:

在 MovieClip實例中幀的總數。

如果影片剪輯包含多個 幀,則totalFrames屬性 將返回影片剪輯中所有場景的 中的幀總數。

這可能會影響它以及稍後。

+0

哦,對不起,我錯過了信息:我在舞臺上播放了MeiYiMan電影。 – hon 2011-06-14 04:19:35

+0

哦,我知道。我正在經營一個美意大利的差異實例。 – hon 2011-06-14 04:20:28

+0

@hon您提供的代碼不會顯示MeiYiMain的多個實例。 – Marty 2011-06-14 04:22:50

0

應該正常工作,這很奇怪。嘗試爲MeiYiMain製作課程,並在其中添加聽衆,而不是在MeiYi之內。

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

    public class MeiYiMain extends MovieClip 
    { 
     /** 
     * Constructor 
     */ 
     public function MeiYiMain() 
     { 
      addEventListener(Event.ENTER_FRAME, _handle); 
     } 

     /** 
     * Handle 
     * @param e Event.ENTER_FRAME 
     */ 
     private function _handle(e:Event):void 
     { 
      if(currentFrame == totalFrames) 
      { 
       removeEventListener(Event.ENTER_FRAME, _handle); 

       trace('stopped'); 
       stop(); 
      } 
     } 
    } 
} 
+0

好吧,我已經想通了。 – hon 2011-06-14 05:36:01

+0

不用擔心,可能需要利用** Shannon答案的**接受答案**按鈕。 – Marty 2011-06-14 05:37:40