2014-02-11 26 views
0

因此,在爲我正在處理的項目中添加對動態圖像(一個MovieClipLoader)的支持後,我遇到了一些奇怪的行爲。在本地測試中,所請求的圖像加載正常,我可以按照我喜歡的方式使用它們。但是,當.swf在線託管時,即使沒有發生onLoadError事件,圖像也不可見。這種行爲看起來很奇怪,顯然不可取。通過一些測試,我發現使用MovieClipLoader加載的圖像的尺寸與源圖像的尺寸匹配,但getPixel返回「-1」。MovieClipLoader.loadMovie()以適當的尺寸加載空白圖像

我通過BitmapData.draw方法提取圖像,但我不認爲這是問題的原因,因爲我的實現功能正常脫機。

圖像是由一個網站託管的一個開放的跨域策略。我無法想象這是跨域安全的問題。

它不應該是服務器託管.swf的限制,因爲我能夠從其他網站檢索XML數據。

我希望這是簡單的事情,而不是MovieClipLoader類的固有問題。我想通過來這裏試圖排除後者。

謝謝。

+0

嗯,我發現這個問題。 Adobe害怕自己的影子,並因此將BitmapData.draw方法的一個無證(最差的抽象文檔)安全特性應用於此。看起來好像他們浪費內存來確定一個對象是否跨域加載並阻止在BitmapData.draw中使用該對象。我無法開始深入瞭解如何跨域繪製圖像可以被利用,但我會盡量不要讀得太多。 謝謝Adobe!我很欣賞我現在需要使用的頭痛和不完美的解決方案。 – Aierou

回答

0

BitmapData.draw具有跨域安全性。必須使用System.security.loadPolicyFile()才能繪製跨域對象。