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

2021-09-13 16:57:18 字數 1154 閱讀 5809

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

getchildat(深度)

範圍為:0-(numchildren-1),效率最高的乙個方法。

可以通過該方法自己定義遞迴函式遍歷舞台中所有的子物件。

getchildbyname(元件名)

通過遍歷的方式,找到第乙個符合姓名的子物件後冒泡返回。一般來說,大家用這個方法都可以找到舞台中想要的物件,但是,如果需要使用的物件不是舞台容器的子物件,那麼可能造成乙個問題:通過該方法找不到想找的元件!因為該方法只能找到它的子物件。

getobjectsunderpoint(點物件)

通過傳入指定的座標,返回乙個陣列,返回的陣列包括指定座標下的所有子物件。

通過符號「.」+元件名或者[「元件名」]

這是重點(敲黑板)!

在as2中,其實存在這個方法,但是在as3中,因為多了三個查詢子物件的方法,所以這個方法是不推薦使用的(但是真的很好用,還很快,效率高!)。

我們載入外部舞台時,都是通過loader類來載入,然後裡面的content就是我們載入的swf檔案的內容,是乙個movieclip型別的物件,這個時候,我們只需要通過乙個movieclip型別的成員變數來儲存這個content,就可以在需要的地方進行快速的呼叫了。使用方法如下:

var request:urlrequest =new urlrequest("需要載入的swf檔案路徑");

var loader:loader=new loader();

loader.load(request);

var content:movieclip=loader.content as moiveclip;

//接下來我需要呼叫舞台中mc容器下的btn元件

//下面兩種方法都可以達到取子物件的效果

var obj=content.mc.btn;

//var obj=content["mc"]["btn"];

提取碼:7xo0

物件深淺拷貝的四種方法

存在這麼乙個物件,對他進行深拷貝 var obj 淺拷貝 僅僅是指標給了另乙個物件var obj var obj1 obj obj1.name 熱心市民王先生 此時,我們對obj1進行改變,檢視obj obj1 console.log obj console.log obj1 我們可以發現,原來的o...

C 讀取CSV檔案的四種方法

code 1 用乙個system.web.ui.htmlcontrols.htmlinputfile去handle檔案選取。以下是button click event中的code,用來執行當檔案選取了之後讀取檔案的內容。剛剛做過,直接當表來讀 select into theimporttable f...

最長回文子串四種方法

這個應該是最容易的方法了,但是一看複雜度o n3 還是放棄好了。但是這個方法也是遍歷所有字串字串的一種方法。下面是暴力搜尋的 暴力迴圈 public static string maxpalindromestringforce final string target return target.su...