因此,我製作了一個SWF文件,並且需要在項目開始時添加一些說明。我認爲最簡單的方法是將動畫製作在單獨的SWF中,然後將其導入到第一個SWF的開頭。我的問題是,我無法找到一個可靠的方式來分辨第一個SWF何時完成播放。我已經搜索了這個,但我似乎無法找到任何可行的方法。由於一些奇怪的原因,無論我做什麼程序似乎認爲外部SWF只有2幀,如果我把一個ENTER_FRAME監聽器和跟蹤externalSWF.currentFrame我得到「1,1,2,2,2,2, 2,2 ...「我的代碼看起來像這樣。AS3:從外部加載的SWF獲取信息
var ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
ldr.load(new URLRequest("Instructions.swf"));
function loaded(e:Event){
trace("Loaded");
var extSwf = ldr.content as MovieClip;
addChild(extSwf);
trace(extSwf.totalFrames);//Returns 2
}
有沒有其他人有類似的外部SWFs問題?
另外,爲了記錄,外部SWF在我作爲孩子添加時正常播放。問題是當它完成播放時從舞臺上移除它。它是互動的,所以我不能只是做一個幀數。
編輯:所以我試着在extSwf上做一個getQualifiedClassName()調用,並且我得到了「Instructions_fla :: MainTimeline_ Preloader _」,這可以解釋框架的差異性。我怎樣才能訪問實際的時間表?
應該有一種方法可以直接與它交互嗎?這是其他討論給我的印象。 – Cyborg771 2011-03-30 19:49:22
LoaderInfo上的sharedEvents是SWF之間進行通信的官方方式。它的設計也適用於不同的安全環境,如果這對你很重要:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html#sharedEvents – joshtynjala 2011-03-30 20:23:30