2013-02-18 92 views
3

如何將圖像保存到SharedObject?我正在使用SharedObject來保存應用程序狀態,它對Text對象和UIComponent很好,但保存了Image創建問題。它不會引發任何錯誤。在共享對象中保存圖像

userdiagram.imageData = zorder.getItemAt(i) as mx.controls.Image 
    userdiagram.x  = (zorder.getItemAt(i)).x; 
    userdiagram.y  = (zorder.getItemAt(i)).y; 
    userdiagram.height = (zorder.getItemAt(i)).height 
    userdiagram.width = (zorder.getItemAt(i)).width 

這裏userdiagram是類,imageData是一個圖像類型變量。

回答

1

我將圖像保存爲通過阿比納夫建議鏈接:

var data:BitmapData = new BitmapData((zorder.getItemAt(i) as mx.controls.Image).width, (zorder.getItemAt(i) as mx.controls.Image).height); 
       data.draw((zorder.getItemAt(i) as mx.controls.Image)); 
       var encoder:JPGEncoder = new JPGEncoder(); 
       var bytes:ByteArray = encoder.encode(data); 

       userdiagram.x   = (zorder.getItemAt(i)).x; 
       userdiagram.y   = (zorder.getItemAt(i)).y; 
       userdiagram.height = (zorder.getItemAt(i)).height 
       userdiagram.width  = (zorder.getItemAt(i)).width 
       userdiagram.rotation = (zorder.getItemAt(i)).rotation 
       userdiagram.bytes = bytes; 
       saveState.addItem(userdiagram) 

但是,當我從sharedObject檢索圖像創建的圖像類型的對象,並使用以下代碼:

var v:Object = _saveIn.data.value1.readObject(); 
p.source = (v as ArrayList).getItemAt(i).bytes; 

這裏p是圖像類對象和(v as ArrayList).getItemAt(i)保存字節數組位置。