我有一個SWF主時間軸上的一個Flash動畫,有幾個圖層,一些函數和一些關鍵幀標籤。例如,我有一個碰到屏幕的明星的動畫片段,然後觸發主時間線的dispatchEvent去幀標籤「下一個」。AS3加載程序不斷重新加載相同的SWF
這裏是主時間軸使用的ActionScript的示例:
Stars.addEventListener("fadeInTitle",_fadeInTitle);
function _fadeInTitle(e:Event):void {
Title.gotoAndPlay("fadeIn");
Stars.removeEventListener("fadeInTitle",_fadeInTitle);
}
stop();
也就是說SWF單獨的作品完美。當我嘗試將此SWF加載到另一個時,問題就出現了。 加載程序會一直重複加載SWF,並重疊它們,忽略加載的SWF的主時間軸上的動作,時間軸連續播放。這裏是我用來加載SWF的代碼:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
function startLoad(){
var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("Fly.swf");
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
mLoader.load(mRequest);
}
function onCompleteHandler(loadEvent:Event){
addChild(loadEvent.target.content);
}
function onProgressHandler(mProgress:ProgressEvent){
var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal;
}
startLoad();
這裏沒有什麼特別的。只是一個簡單的裝載機
我發現了一種解決方法,將整個動畫放在一個主動畫片段內,並將該動畫片段放在主時間軸上(一個關鍵幀,一個圖層,沒有動作),然後加載它。這樣它的工作正常,但它感覺更像是一個補丁而不是解決方案。我真的很想知道爲什麼當您嘗試加載使用主時間軸的外部SWF以及多個圖層,關鍵幀和動作時會出現問題。
任何幫助/提示將不勝感激。
非常感謝您的閱讀。
m
您是否嘗試在startLoad()中放置斷點以確保它只被調用一次? – Kai 2011-02-18 19:26:00