views:

485

answers:

3

Is it possible to store a Image in a SharedObject in Flash? It would be nice if it would work. I need to "store" Images locally but it seems not to be supported by Flash... So I 'ld like to put those images in a SharedObject that can be saved... but does it work with images?

I tried it with a Bitmap but if I want to read and add it to the stage it says that the Object can't be converted to a Bitmap...

var image:Bitmap = //some awesome image;

sharedObject = SharedObject.getLocal("img");
sharedObject.data.img = image;
sharedObject.flush();

Error here ->

sharedObject = SharedObject.getLocal("img");
addChild(Bitmap(sharedObject.data.img));
+5  A: 

In this case, you need to write your Bitmap to a ByteArray (in other words - binary data) before you set your shared object. Then you need to read it from a ByteArray into a bitmap when you retrieve it. Here is a quick sample the hopefully will get you moving in the right direction:

http://www.kirupa.com/forum/showthread.php?t=306972

David Tucker
hmm this is a little bit slow but it works ^^ nice! thx!
Hank
it's also worth nothing that you don't actually have to encode to jpeg for this to work, as you can create a ByteArray with BitmapData.getPixels()... although i haven't been able to make it work 100% it should be theoretically possible
Daniel
+3  A: 

Don`t forget, shared object has limited size (100Kb default)

peko
It also creates what I'd call a horrible experience for the user, with the confusing Flash Player dialog that pops up asking for permission to increase the local storage.
Joel Hooks
A: 

actually shared object has unlimited space. user has to give permisions

paul