私がやろうとしていること:
-ツールバーにオブジェクトを配置し、ムービークリップにドラッグアンドドロップ可能にします(オブジェクトはムービークリップの子になります)。これが完了したら、このオブジェクトをシリアル化できるようにしたいので、ファイルに保存できます。次に、このファイルをリロードして、このムービークリップへのドラッグ/ドロップを続行できます。
私のやり方:
public class Serialization {
public static function serializeToString(value:Object):String{
if(value==null){
trace("null isn't a legal serialization candidate");
}
var bytes:ByteArray = new ByteArray();
bytes.writeObject(value);
bytes.position = 0;
var be:Base64Encoder = new Base64Encoder();
be.encode(bytes.readUTFBytes(bytes.length));
return be.drain();
}
public static function readObjectFromStringBytes(value:String):Object{
var dec:Base64Decoder=new Base64Decoder();
dec.decode(value);
var result:ByteArray=dec.drain();
result.position=0;
return result.readObject();
}
}
これは、関数を呼び出す/ファイルに書き込む場所です。
var fr:FileReference = new FileReference;
fr.addEventListener(Event.COMPLETE, success);
var txtString:String = new String();
txtString = save.Serialization.serializeToString(pagePic);
trace(txtString);
fr.save(txtString, "test.txt");
残念ながら、txtStringは空白のようです。私はこれに間違って近づいていますか?
補足:これはモバイルプラットフォーム用に開発されています。