Сохранить изображение в 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

Другие вопросы по тегам