如何将图像保存到SharedObject
?我使用SharedObject
作为保存应用程序状态,它适用于文本对象和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是class而imageData是图像类型变量。
答案 0 :(得分:3)
您必须使用byteArray将图像保存在sharedObject中。
您可以在此处详细了解:http://www.kirupa.com/forum/showthread.php?306972-Saving-bitmaps-to-a-shared-object
答案 1 :(得分:1)
我将图像保存为Abhinav的建议链接:
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是Image类对象,(v as ArrayList).getItemAt(i)
是保存的字节数组位置。