在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...