3

如何将图像保存到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 是类,imageData 是图像类型变量。

4

2 回答 2

3

您必须使用 byteArray 将图像保存在 sharedObject 中。

您可以在这里阅读更多信息:http ://www.kirupa.com/forum/showthread.php?306972-Saving-bitmaps-to-a-shared-object

于 2013-02-18T08:28:29.347 回答
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)是保存的字节数组位置。

于 2013-02-19T11:59:14.940 回答