Тип данных объекта в AS3 и Flash Builder 4.5.1 - PullRequest
0 голосов
/ 16 июля 2011

Я пытаюсь сохранить объект Sprite в виде файла на устройстве, на котором я работаю, и, похоже, он работает.проблема, которую я имею в том, чтобы прочитать сохраненный файл обратно и поместить его обратно на сцену в виде спрайта.Ниже приведен код, который у меня есть, может кто-нибудь сказать мне, что я делаю не так?У меня есть подозрение, что сохраненные данные не соответствуют ожиданиям, поскольку размеры файлов были ниже килобайта.

public function save_album(e:Event):void
{
    var outFile:File = File.documentsDirectory; // dest folder is desktop
    outFile = outFile.resolvePath("canvas3.bin");

    var fs:FileStream = new FileStream();
    var bytes:ByteArray = new ByteArray();
    //trace (File.documentsDirectory.url + "/canvas2.bin");

    fs.open(outFile, FileMode.WRITE);

    bytes.writeObject(graffitiContainer) //graffitiContainer is a Sprite
    bytes.position = 0;

    fs.writeBytes(bytes, 0, bytes.length);
    fs.close();
}

public function open_album(e:Event):void
{
    var inBytes:ByteArray = new ByteArray();
    var inFile:File = File.documentsDirectory; 
    inFile = inFile.resolvePath("canvas3.bin");  // name of file to read
    var inStream:FileStream = new FileStream();
    inStream.open(inFile, FileMode.READ);
    inStream.readBytes(inBytes, 0, inBytes.length);
    inStream.close();
    inBytes.position = 0;

    ui.removeChild(graffitiContainer);

    var obj:Sprite = inBytes.readObject() as Sprite; //returns a null


    graffitiContainer = obj;
    ui = new UIComponent();
    graffitiContainer.x = 0;
    graffitiContainer.y = 100;
    ui.addChild(graffitiContainer);
}

1 Ответ

0 голосов
/ 16 июля 2011

Не совсем уверен, что я понимаю, чего вы пытаетесь достичь;однако, эта реализация не делает то, что вы думаете - writeObject может сериализовать только общие общедоступные свойства, но не графический элемент.

Вы можете отобразить его как растровое изображение.сообщение в блоге об этом: http://jacwright.com/201/serializing-display-objects/

...