4

これはおそらく非常に単純な質問です。どうすればよいかわかりません。

複製したいオブジェクトがあり、その方法がわかりません。これが私の試みです:

var myObj = new ObjectClass();
var duplicate = myObj;
duplicate = null;
myObj.function(); // Error: Null reference

ObjectClass は非常に大きく、それ自身の子を継承して作成します。そこにはおそらくいくつかのシングルトン クラスがあると確信しています。

何かを簡単に複製する方法はありますか?

編集: AS3機能がない「クローン作成」を探しているようですが、とにかくプライベートデータをクローンすることはできません。大量のプライベートデータを複製するためのライブラリまたは回避策を知っている人はいますか?

4

2 に答える 2

4

私はこのユーティリティ関数をブログから入手しましたが、どこから覚えていないので、クレジットを与えることができません。ただし、ビットマップデータでは機能しません。とにかくここにあります:

public static function copy(o:Object):Object 
{
    var bytes:ByteArray = new ByteArray( );
    bytes.writeObject( o );
    bytes.position = 0;
    return bytes.readObject( );
}

使用法:
registerClassAlias("com.tests.TestClass", TestClass); var testCopy:TestClass = TestClass(ObjectUtil.copy(test));

于 2009-05-07T04:52:34.243 に答える
1

ObjectUtil.copy()(Flexライブラリ)を使用できます。しかし、それが個人データをサポートしていないことは正しいです。これは暗闇でのショットですがByteArray.writeObject()、個人データをコピーするかどうかを使用してAMFにシリアル化するのだろうか? 試してみる価値があるかもしれません。

于 2009-05-07T04:33:06.100 に答える