2013-02-18 83 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)保存字节数组位置。