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);
}
おかげで、私はそれは私が後でそれを開いたときに、私が編集してレンダリングすることで、それに変更を加えることができ、ローカルストレージにファイルとして実際のオブジェクトを保存したいもの:
は、このことについてブログ記事を見ましたビットマップデータには、私が持っているレイヤーを編集することはできません。 – Tw1tCh一般的なDisplayObjectプロパティとともにグラフィックスデータのカスタムシリアル化を書き直す必要があります。これらのオブジェクトのエディタを書きましたか、またはFlash Playerランタイムのオブジェクトをどのように編集する予定ですか? –
私はすでにSpriteコンテナ内のすべての子などを処理するためのコードを書いています。メソッドと図形を描画します...スプライトをバイナリ形式または類似の形式で保存する方法を見つける必要があります。構造。 – Tw1tCh