0

私がやろうとしていること:

-ツールバーにオブジェクトを配置し、ムービークリップにドラッグアンドドロップ可能にします(オブジェクトはムービークリップの子になります)。これが完了したら、このオブジェクトをシリアル化できるようにしたいので、ファイルに保存できます。次に、このファイルをリロードして、このムービークリップへのドラッグ/ドロップを続行できます。

私のやり方:

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は空白のようです。私はこれに間違って近づいていますか?

補足:これはモバイルプラットフォーム用に開発されています。

4

1 に答える 1

1

残念ながら、MovieClips、Sounds、およびその他のリソースはシリアル化できません。私の解決策は、すべてのプロパティを保存してロード時に再割り当てするカスタムクラスを作成するか、保存/ロード時にテキストファイルに書き込んだり解析したりすることです。

于 2012-06-26T13:53:15.617 に答える