簡體   English   中英

AS3-跟蹤SWF的加載程序類問題(文檔類)

[英]AS3 - Loader class problem tracing the swf (document class)

我正在使用Loader類加載3個外部swfs:

  1. sharedTopics.swf(沒有文檔類)
  2. fonts.swf(文檔類為FontManager)
  3. main.swf(文檔類為Main)

相同的加載程序用於加載所有3個資產。

__assetLoader = new Loader(); 
var urlReq:URLRequest = new URLRequest(target.path);
__assetLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, this.preloadProgress);
__assetLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.assetCompleteHandler); 
__assetLoader.contentLoaderInfo.addEventListener(Event.INIT, this.assetInitHandler); 
__assetLoader.load(urlReq);

在完整的處理程序中,我將加載器內容添加到影片剪輯中,然后找出一個變量:

var swf:DisplayObject = __assetLoader.content;
Debug.doTrace("Shell:: assetCompleteHandler():: content " + swf);
__app.addChild(MovieClip(swf));

當分別加載sharedTopics,字體和主要swfs時,我得到以下跟蹤語句:

Shell:: assetInitHandler():: evt.currentTarget.content [object MovieClip]
Shell:: assetInitHandler():: evt.currentTarget.content [object FontManager]
Shell:: assetInitHandler():: evt.currentTarget.content [object Main__Preloader__]

我希望最后一個trace語句看起來類似於“ [object Main]”,這將是文檔類的名稱,但是內容是加載程序。 有什么想法為什么會這樣?

在更高版本的函數中,我嘗試調用Main類的init函數並得到以下錯誤:

Error #1069: Property init not found on classes.Main__Preloader__ and there is no default value.

我希望對此進行清楚的解釋。

提前致謝,

麥克風

罪魁禍首是TLFTextField。 默認情況下,在CS5中,“庫路徑”(可在ActionScript3.0設置>“庫路徑”中找到)項設置為“運行時共享庫​​”並使用默認的預加載器,因此可通過將“默認鏈接”更改為“合並到代碼中”您不必擔心從外部加載這些庫...

看起來main.swf並非打算像您試圖那樣被間接加載。 zeh指出,Main可能是SWF的子代...
如果是這種情況(看起來確實如此),則應查看Main.as,找到Main_Preloader的實例並檢索要加載的網址,然后加載該網址...或者嘗試簡單地繞過Main_Preloader或/並在AssetLoading類中重新實現它。

暫無
暫無

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

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