2014-04-11 20 views
0

我有一個外部swf是角色動畫。我成功加載並將其存儲在MovieClip變量中並將其添加到舞臺。它開始在第0幀播放,一切正常,但我無法獲得gotoAndPlay或gotoAndStop的工作。我可以追蹤MovieClip的當前幀,因此我可以訪問時間線。使用gotoAndPlay時,我不會出現任何閃存錯誤,或gotoAndStop,它只是簡單的沒有對MovieClip做任何事情。gotoAndPlay不適用於外部加載的SWF

我對此感到茫然,爲什麼除了這一切都會發揮作用。任何提示不勝感激。

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, LoaderComplete); 
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, LoaderError); 
loader.load(new URLRequest("file.swf"); 

private function LoaderComplete(e:Event):void 
{ 
    var character:MovieClip = e.target.content as MovieClip; 
    stage.addChild(character); 
    character.gotoAndStop(10); 
} 
+0

顯示一些代碼,你到目前爲止嘗試過嗎? –

+0

我添加了一些代碼 –

+0

有關更多信息,似乎認爲character.currentFrame始終爲1,即使它在循環播放動畫。 –

回答

1

我想加載的SWF文件的主時間軸是不是你的性格,這就是爲什麼你總是currentFrame 1得到。

//This line of code, gives you reference on main timeline 
var mainTimeline:MovieClip = e.target.content as MovieClip; 
//Check if there is character 
//If I'm correct, numChildren will return 1 or more 
trace(mainTimeline.numChildren); 
//If yes, access character animation 
//Like this: 
var char: MovieClip = mainTimeline.getChildAt(0) as MovieClip; 
char.gotoAndStop(10); 
+0

這就是它,謝謝。 –

1

這可能是您將其添加到舞臺的那一刻,它不知道它有多個幀。嘗試收聽added_to_stage事件,然後轉到幀,如:

private function LoaderComplete(e:Event):void 
{ 
    var character:MovieClip = e.target.content as MovieClip; 
    stage.addChild(character); 
    character.addEventListener(Event.ADDED_TO_STAGE, gotoTheFrame); 
} 

private function gotoTheFrame(e:Event){ 
    var target:MovieClip = MovieClip(e.target); 
    target.gotoAndStop(10); 
}