簡単にする必要があります。私には物体があります。私はそれを修正したいが、私は前に戻ることができるコピーを保存したい。私はcopy = originalを設定しようとしましたが、オリジナルの属性を変更するとコピーにも変更が示されます。私はこれを仮定しているのは、あなたが割り当てるときにいつでもactionscriptで、それは本当に元のオブジェクトへの参照を格納するだけだからです。それで、後で使うために元のオブジェクトのコピーを保存するための最良の方法は何ですか?Actionscript - 参照なしの変数割り当て?
2
A
答えて
3
var newObj:Object = Object(ObjectUtil.copy(oldObj));
「コピー指定されたオブジェクトのコピーへの参照を返す。コピーは、ネイティブ直列化技術を用いて作られる。これは、カスタムシリアル化がコピー中に尊重されることを意味する。
この方法は、設計されています特定のUIComponentオブジェクトのコピーを作成する場合は、そのコンポーネントのサブクラスを作成し、そのオブジェクトのサブクラスを作成することができます。 clone()メソッド、またはコピーを実行する他のメソッドを呼び出すことができます。
http://livedocs.adobe.com/flex/3/langref/mx/utils/ObjectUtil.html#copy()
0
// duplicate any given Object (not MCs)
Object.prototype.copy = function()
{
ASSetPropFlags(Object.prototype,["copy"],1);
var _t = new this.__proto__.constructor(this) //
for(var i in this){
_t[i] = this[i].copy()
}
return _t
};
あなたが探しているものを使用
x = ["1","2","3",[4,5],[{a:1,b:2}]]
y = x.copy()
y[0] = 0
y[3][0]="d"
trace(x)
trace(y)
3
は参照渡しではなく、オブジェクトのディープコピーです。
newObjectCopy = clone(originalObject);
乾杯:あなたは、このように使用
http://www.kirupa.com/forum/showthread.php?p=1897368
function clone(source:Object):* {
var copier:ByteArray = new ByteArray();
copier.writeObject(source);
copier.position = 0;
return(copier.readObject());
}
:私はAS3に新しいByteArrayクラスを使用して、ここで答えを見つけました!
+0
シリアル化する前にクラスエイリアスを登録すると、デシリアライズ後にオブジェクトを適切なクラスに保持できます。 flash.net.registerClassAliasを参照してください – preaction
関連する問題
- 1. xmllistコピー割り当てまたは参照割り当て?
- 2. AngularJS:Objectプロパティへの変数参照を割り当てます
- 3. UnboundLocalError:割り当て前に参照されるローカル変数 "xyz"
- 4. UnboundLocalError:割り当て前に参照されるローカル変数 'Control_Type'
- 5. 参照へのポインタの割り当て
- 6. 非const参照への割り当て
- 7. NULLポインタの逆参照による参照の割り当て
- 8. Actionscript 3 - 関数内でグローバル変数を割り当てる
- 9. 参照を割り当てる
- 10. null参照型に割り当てる
- 11. 参照変数を使用したSPSSでの値の割り当て
- 12. 変数割り当てと参照渡しの違いは何ですか?
- 13. "割り当て前に参照されるローカル変数" - 関数のみ?
- 14. 変数 'opts'が割り当て前に参照されました
- 15. 複数の参照割り当て - 基準質問
- 16. UnboundLocalError:割り当て前にローカル変数 'document'が参照されています
- 17. UnboundLocalError:割り当て前にローカル変数 'number1'が参照されています
- 18. 割り当て前にローカル変数 'newfile'が参照されています
- 19. UnboundLocalError:割り当て前にローカル変数 'total'が参照されています
- 20. UnboundLocalError:割り当て前にローカル変数 'prod_Available'が参照されています
- 21. django:割り当て前に参照されているUnboundLocalErrorローカル変数
- 22. UnboundLocalError:割り当て前にローカル変数 'money'が参照されています
- 23. 割り当て前にローカル変数yが参照されています
- 24. UnboundLocalError:割り当て前にローカル変数 'T3'が参照されています。 "
- 25. 割り当て前にローカル変数 'script1'が参照されています
- 26. 割り当て前にローカル変数 'B'が参照されています
- 27. ブロック内に値が割り当てられている参照変数
- 28. セル参照を割り当てるVBA関数
- 29. メソッドから変数に返された参照を割り当てる
- 30. firebaseデータベースurl(String)をデータベース参照変数に割り当てますか?
これはひどいソリューションである、任意のオブジェクトが少しだけ複雑に正しくコピーされません。さらにObjectプロトタイプに追加するのは良い方法ではありません。私は、プロトタイプに何かを加えることは悪い習慣であるといっても意味があります。これは、機能よりも遺物のほうが残っています。 –