Сохранить изображение в sharedObject
Как сохранить изображение в 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 - это переменная типа изображения.
2 ответа
Я сохраняю изображение как предлагаемую ссылку от 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;
здесь р - объект класса Image и (v as ArrayList).getItemAt(i)
сохраняется местоположение байтового массива.
Вы должны использовать byteArray, чтобы сохранить изображение в sharedObject.
Вы можете прочитать больше об этом здесь: http://www.kirupa.com/forum/showthread.php?306972-Saving-bitmaps-to-a-shared-object