« イベント配信クラス×3 | Macromedia、Adobeと合併 »
mx.utils.ObjectCopyクラス でオブジェクトを複製
配列やオブジェクトをコピーしたいとき普通の変数のように A = B と代入すると参照が代入されるため、片方の値を変更すると両方変わってしまいますが、mx.utils.ObjectCopyクラス を使うとオブジェクトを複製できるようです。
通常の代入
mx.utils.ObjectCopyクラス で代入
FLASH-JP.COM - 「値による代入」と「参照による代入」について
darron schall :: Know thy Class Library*
インスタンスレベルで定義された function はコピーされないようです。
<追記>
Fumiononaka.com - Macromedia Flash非公式テクニカルノート
FN0603002 - ObjectCopy.copy()メソッド
FN0604001 - ObjectCopy.copy()メソッドを多重配列対応に修正する
通常の代入
var A = new Object(); A.test = "テスト1"; // オブジェクトAをオブジェクトBに代入 var B = A; // Bを変更 B.test = "テスト2"; // Aも変更されてしまう trace(A.test); // テスト2 trace(B.test); // テスト2
mx.utils.ObjectCopyクラス で代入
var A = new Object(); A.test = "テスト1"; // オブジェクトAをオブジェクトBに代入 var B = mx.utils.ObjectCopy.copy(A); // Bを変更 B.test = "テスト2"; // Aはそのまま trace(A.test); // テスト1 trace(B.test); // テスト2
FLASH-JP.COM - 「値による代入」と「参照による代入」について
darron schall :: Know thy Class Library*
インスタンスレベルで定義された function はコピーされないようです。
<追記>
Fumiononaka.com - Macromedia Flash非公式テクニカルノート
FN0603002 - ObjectCopy.copy()メソッド
FN0604001 - ObjectCopy.copy()メソッドを多重配列対応に修正する
Comments
コメントを書く
※ スパム対策のためコメント内の URL は全角で書いてください。あとで半角に変換します。