簡體   English   中英

沒有為帶有嵌入內容的圖像控件觸發完成/進度事件

[英]Complete / Progress events aren't firing for Image control with embedded content

我有以下 MXML 標簽:

<mx:Image id="image" width="100%" height="100%" 
              source="@Embed('../assets/Test.swf')" 
              complete="completeHandler(event)" 
              progress="progressHandler(event)"/>

但由於某種原因,我的 completeHandler / progressHandler 函數沒有被調用。 我需要完整事件的原因是因為我想在圖像加載后操縱 bitmap 數據。 在創建完成bitmap數據還是null。 為什么這些事件沒有觸發?

編輯:資產在我的應用程序中正確顯示 - 所以我知道資產在正確的位置(嵌入保證無論如何在編譯時)。

因此,您只需將 Event.COMPLETE 偵聽器直接添加到 loader.contentLoaderInfo 而不是加載器。 我不敢相信這不是他的文檔。

這似乎是這里的預期行為!

從文檔中:

不保證會調度進度事件。 可能會接收到完整的事件,而不會分派任何進度事件。 當加載的內容是本地文件時,可能會發生這種情況。

所以我認為這部分可以解釋為什么在您的示例中沒有捕獲任何進度事件。

內容加載完成時調度。 與 complete 事件不同,此事件針對所有源類型調度。 請注意,對於通過 Loader 加載的內容,會調度 ready 和 complete 事件。 對於嵌入等其他源類型,僅調度就緒。

它清楚地表明在處理嵌入式源時應該監聽 READY 事件而不是 COMPLETE;)

檢查您的資產路徑。 最有可能的是,swf 不在正確的路徑上,或者沒有被復制到 debug-build/release-build 目錄中的assets文件夾中。

如果您使用的是嵌入式資產,則可以在源 object 上立即使用寬度/高度屬性:

var mySource:Object = new embeddedClass();
m_myWidth = mySource.width;
m_myHeight = mySource.height;
m_image = new Image();
m_image.source = mySource;

因此,您必須先創建源實例,然后在映像 object 上設置源。

暫無
暫無

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

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