AS3多種方法複製可視物件

2021-08-30 22:34:43 字數 1539 閱讀 7036

as3複製可視物件

一,複製舞台上的影片剪

方法1——反射方法:

var classref:class = getdefinitionbyname(getqualifiedclassname(t_mc)) as class;

var clone_mc:displayobject = new classref();

addchild(clone_mc);

方法2——構造器方法:

var classref:class = t_mc.prototype.constructor;

var clone_mc:movieclip = new classref();

addchild(clone_mc);

二,複製loader載入的swf

複製外部載入的swf是乙個相對高階的操作,步驟比較多,過程相對複雜,要闡述清楚原理細節需要很大篇幅的文字,因此,這裡我就偷懶不詳細寫說明了,純用**來說明問題,希望對看得懂的朋友起到拋磚引玉的作用。

方法1——bytearray深度複製

var byteloader:urlloader = new urlloader();

byteloader.dataformat = urlloaderdataformat.binary;

byteloader.addeventlistener(event.complete, loadcompletehandler);

var loader:loader = new loader();

loader.y = 200;

addchild(loader);

loader.contentloaderinfo.addeventlistener(event.init, loadinithandler);

function loadinithandler(evt:event):void

byteloader.load(new urlrequest("t.swf"));

function loadcompletehandler(evt:event):void

簡單原理:用urlloader將外部的swf以二進位制資料格式載入到bytearray中,然後用loader類的loadbytes去載入urlloader中的bytearray。

var loader:loader = new loader();

loader.y = 200;

addchild(loader);

loader.contentloaderinfo.addeventlistener(event.init, loadinithandler);

var context:loadercontext = new loadercontext();

loader.load(new urlrequest("t.swf"), context);

function loadinithandler(evt:event):void

注意:

1.以上兩種複製方法,由於都需要載入swf檔案,因此需要檔案級別的本地安全性;

c 複製陣列的多種方法

方法一 使用for迴圈 int pins int copy new int pins.length for int i 0 i copy.length i 方法二 使用陣列物件中的copyto 方法 int pins int copy2 new int pins.length pins.copyto...

AS3中讀取子物件的四種方法

這段日子在公司實習,學習新語言actionscript3,遇到過這麼乙個問題,在容器中獲取子物件,大部分的回答都是三種 getchildat getchildbyname getobjectsunderpoint 但是有時候通過這三種方法很難get到想要的物件,而且效率除了第一種,其他的也都不高,那...

as3遍歷物件所有屬性的方法

as3遍歷物件所有屬性的方法 包含flex 1 所有物件,包括靜態屬性和動態屬性 objectutil.getclassinfo this.arr 0 properties as array 2 僅能遍歷靜態屬性 var o object new object o.name mm o.type si...