簡體   English   中英

AS3將外部SWF加載到Loader中的問題

[英]AS3 Problem in loading external SWF into Loader

我有通過加載程序組件加載外部瑞士法郎的主要應用程序。 但是一些運行良好的SWF文件不會加載到主應用程序中。 當我嘗試從主應用程序的fla加載該SWF文件之一時,出現錯誤,它正在尋找某些類。 通過此類的名稱,它看起來像是已加載的swf的一部分,但由於swf已被編譯並且運行良好,為什么在嘗試由主應用程序加載時會尋找此類?

我沒有發現任何涉及此類問題的信息。 任何幫助將不勝感激。

似乎您遇到了應用程序域沖突。 如果每個SWF中的類名沖突(例如swf1的類名為Main,swf2的類也稱為Main),則可能會發生這種情況。

要解決此問題,請將SWF加載到新的應用程序域中:

loader.load(new URLRequest("g.swf"), new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain)));

如果不是那樣,則很可能在影片的第一幀上有一些代碼在SWF初始化時執行(請在獲取Event.COMPLETE之前先查看是否獲取Event.INIT)。

通過從框架中刪除代碼,可以輕松解決此問題。

為了檢查,我制作了僅包含Loader組件和加載代碼的fla文件:

var loader:Loader = new Loader();
addChild(loader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingFunc);
loader.load(new URLRequest("g.swf"));

function loadingFunc(event:Event):void{
    var li:LoaderInfo = event.target as LoaderInfo;
    var mc:MovieClip = MovieClip(li.content)
}

此代碼來自測試文件。 但是即使這樣,它仍然會尋找某種似乎是外部加載的swf之一的類。 錯誤是這樣的:

TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。 在src :: Dedo()在src :: Main()

我的主應用程序中沒有此類。 因此,它可能只是來自外部swf的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM