配列やオブジェクトをコピーする時に普通copy=originalと代入しちゃうと参照が代入されてしまうので片方の値を変えちゃうともう一方も変わってしまいますよね。
けどFlash8からだとこのmx.utils.ObjectCopy()でそんな憂鬱を解消出来るらしいですよ、奥さん!!


var original = new Object();
original.test = "hogehoge";

// オブジェクトAをオブジェクトBに代入
var copy = mx.utils.ObjectCopy.copy(A);
copy.test = "horne";
trace(original.test);
trace(copy.test);

と言う具合でコピー出来ちゃいますね。
ObjectCopyクラスではforでinstanceofで型を検知してガッツリ入れていっている感じですね。
if( to != "function" ) {}内で処理しているのでfunctionはコピー出来ないもよう。

関連:mx.utils.ObjectCopyクラス でオブジェクトを複製 - yoshiweb.NET

Comments
Post a comment









Remember personal info?