2011-07-19 48 views
0

在移動應用程序中,我嘗試從sqlite數據庫加載圖像,並希望將其顯示在mxml圖像組件中。 bytearray的加載工作正常,但是當我將bytearray分配給圖像組件時,出現以下錯誤。flex mobile - 從bytearray加載圖像 - 錯誤#2044:未處理的securityError

錯誤#2044:未處理的securityError :. text =錯誤#3226:LoaderContext.allowCodeImport爲false時無法導入SWF文件。

我也嘗試保存並加載圖像作爲base64字符串。但它沒有幫助。

即使我嘗試簡單的事情是這樣的:

var byteArray:ByteArray = img1.loaderInfo.bytes; 
img2.source = byteArray; 

只是IMG1的字節組添加到空IMG2 - 發生同樣的錯誤。

這裏怎麼了? 非常感謝您的幫助, 歡呼, Flo

+0

我可以看到「img2」是什麼嗎?這是一個圖像組件嗎? – Nate

+0

img1和img2都是圖像組件: spierala

+0

首先,爲什麼要將圖像保存到數據庫中?其次,你如何將bytearray加載到另一箇中? –

回答

0

我不明白爲什麼它認爲你加載的SWF字節。

試試這個小黑客只是踢,告訴我發生了什麼:

var bitmapData : BitmapData = new BitmapData(content.width,content.height,true,0x00000000); 
bitmapData.draw(loader.content, new Matrix(),null,null,null,true); 
img2.source = new Bitmap(bitmapData); 

其中loader是您的裝載機明顯。

+0

ob天啊!我做了一個非常糟糕的事情 - 我給了base64編碼器: 'img1.loaderInfo.bytes;' 經過深思熟慮後,這當然不是圖像的字節陣列! :) 'img1.loaderInfo.loaderURL =「app:/myapp.swf」' loaderUrl顯示它總是嘗試加載的內容:myapp.swf的bytearray! 好的謝謝你的幫助!也許別人正在做同樣愚蠢的事情! :) 歡呼聲, 弗洛裏安 – spierala

+0

沒問題,這讓我感到困惑,因爲該錯誤不應該彈出,除非它是瑞士法郎。挺滑稽的。 :d – Nate

0

您使用mx還是spark Image

mx:Image延伸SWFLoader,所以試圖直接設置它的來源可能會導致安全錯誤,因爲你基本上是導入代碼。 spark:Image包裝BitmapImage。你可能會有更好的運氣。

編輯我剛剛看到您的評論。我也有加載b​​ytearray數據並將其設置爲BitmapImage的來源的安全問題。由於沒有crossdomain.xml,我的沙盒問題,但我從來沒有使用過移動SDK。

相關問題