AS3陣列複製

2021-08-31 22:41:57 字數 945 閱讀 6665

在actionscrip3.0中是沒有提供內建的陣列轉殖的方法的,摸索了一下,如下得論:

1.淺層複製的話,可以使用array類的concat()或者slice()的無參方法來建立乙個新陣列,如下:

var bb:arraycollection = new arraycollection();

var a:dictionary = new dictionary();

a.name = "wodesign";

a.age = 25;

bb.additem(a);

bb.additem("b");

bb.additem("c");

bb.additem("d");

aa = new arraycollection(bb.source.concat());

bb.removeall();

刪除bb內容後,aa儲存了bb的內容。

2.深層複製,這樣可以保證,將陣列所有的內容,包括指向也進行複製,如下:

class user;

}var user:user = new user(12,"wodesign");

var aa:array = new array();

aa.push(user);

// 開始做複製動作了哈

var bytearr:bytearray = new bytearray();

bytearr.writeobject(aa);

bytearr.position = 0;

var bb:array = bytearray.readobject();

// 改值了哈

user.id = 28;

trace(aa[0].id);            // 28;

trace(bb[0].id);            // 12;

ok,還有其它更好的方法嗎,分享吧

AS3陣列隨機排序

隨機排列陣列元素在遊戲開發等專案中會經常用到,下面就是演示的 為了方便,一些簡單的 都是直接在flash時間軸上就可以執行的 taxis是排序的比較函式 引數就是要比較的兩個陣列元素,這裡是要隨機排列,對陣列元素沒有進行比較 返回值應該是 1,0或1 function taxis element1 ...

關於AS3中的深度複製

關於as3中的深度複製 url 參見 url 只能複製object屬性,或者類屬性,不能複製類方法。例如 color 0000ff class color a var a a new a 這時候轉殖乙個a例項 color 0000ff trace color cn.snowkit.utils.cob...

AS3多種方法複製可視物件

as3複製可視物件 一,複製舞台上的影片剪 方法1 反射方法 var classref class getdefinitionbyname getqualifiedclassname t mc as class var clone mc displayobject new classref addc...