2011-07-15 17 views
0

私が作業しているデバイス上のファイルとしてSpriteオブジェクトを保存しようとしていますが、動作するようです。私が抱えている問題は、保存されたファイルを読み込み、スプライトとしてステージに戻すことです。以下は私がこれまで持っていたコードです、誰かが私に間違っていることを教えてもらえますか?私はファイルサイズが1キロバイトを下回っているので、保存されたファイルが私の期待するものではないという疑いがあります。AS3およびFlash Builder 4.5.1のオブジェクトデータ型

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); 
} 

答えて

0

私はあなたが達成しようとしていることを十分に理解していません。しかし、この実装はあなたが考えていることをしません - writeObjectはグラフィックスのメンバーではなく、一般的なパブリックプロパティのみをシリアライズすることができます。

ビットマップにレンダリングすることができます。 http://jacwright.com/201/serializing-display-objects/

+0

おかげで、私はそれは私が後でそれを開いたときに、私が編集してレンダリングすることで、それに変更を加えることができ、ローカルストレージにファイルとして実際のオブジェクトを保存したいもの:

は、このことについてブログ記事を見ましたビットマップデータには、私が持っているレイヤーを編集することはできません。 – Tw1tCh

+0

一般的なDisplayObjectプロパティとともにグラフィックスデータのカスタムシリアル化を書き直す必要があります。これらのオブジェクトのエディタを書きましたか、またはFlash Playerランタイムのオブジェクトをどのように編集する予定ですか? –

+0

私はすでにSpriteコンテナ内のすべての子などを処理するためのコードを書いています。メソッドと図形を描画します...スプライトをバイナリ形式または類似の形式で保存する方法を見つける必要があります。構造。 – Tw1tCh

関連する問題