2011-10-31 92 views
1

我正在使用加載程序將AMV1Movie(使用Toon Boom Studio創建的電影)添加到我的AS3.0階段。我如何確定AMV1Movie何時播放它的最後一幀?如何確定AVM1Movie是否完成?

+2

您是否可以訪問AVM1Movie的源代碼?如果是這樣,您可以使用LocalConnection建立as2和as3電影之間的通信,因此as2電影可以告訴as3電影已完成播放。 –

+0

我不確定是否有某種方法可以在此ToonBoom中編寫代碼。但我會嘗試。謝謝。 –

回答

1

如果沒有從原​​始影片中派發某些東西,您必須輪詢它的currentFrame和numFrames屬性,並且只有在主時間軸是對動畫/程序的精確描述時纔是準確的。如果AVM1Movie通過代碼動畫或嵌套了動畫片段,則無法知道它何時「完成」。

最好的辦法是打開它並添加一個事件到最後。

+0

AVM1Movie public interface中沒有currentFrame和numFrames –

0

我使用ForcibleLoader加載的AVM1Movie作爲影片剪輯:

var uic: UIComponent = .... 
... 
var loader:Loader = Loader(1uic.addChild(new Loader())); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, startPlay); 
var fLoader:ForcibleLoader = new ForcibleLoader(loader); 
fLoader.load(new URLRequest("....swf")); 

然後我檢查是否(movie.currentFrame + 1> = movie.totalFrames)

我使用該功能來控制uic.click事件停止播放電影:

private function controlSwf(event: Event): void { 
    var e: Event = event; 
    var movie: MovieClip = MovieClip(Loader(event.target).content); 
    if (movie.currentFrame + 1 >= movie.totalFrames) { 
     movie.gotoAndPlay(1); 
     play = true; 
    } else if (play) { 
     play = false; 
     movie.stop(); 
    } else { 
     play = true; 
     movie.play(); 

    } 
} 
相關問題