var ss:String = "";
function EnumNameOfChild(doc:DisplayObjectContainer):void {
for( var j = 0; j < doc.numChildren; j ++ ) {
trace(ss + doc.getChildAt(j).name);
if( doc.getChildAt(j) is DisplayObjectContainer ) {
ss += " ";
EnumNameOfChild(doc.getChildAt(j) as DisplayObjectContainer);
}
}
ss = ss.slice(0, ss.length - 2);
}
顯示舞台上所有物件的實體名稱,沒什麼實用性
只是用來看一下舞台上物件的架構而已
不過如果你是第一次寫程式,建議還是用一次看看
用法:
EnumNameOfChild(stage);
結果大概是這樣
root1
btn_Test01
mc_Test01
instance1
mc_Test02
instance13
function FindMCObject(doc:DisplayObjectContainer, name:String):MovieClip {
var mc:MovieClip = null;
try {
mc = doc.getChildByName(name) as MovieClip;
}
catch (e:SecurityError) {
trace(e);
}
if( mc ) return mc;
for( var j = 0; j < doc.numChildren; j ++ ) {
if( doc.getChildAt(j) is DisplayObjectContainer ) {
mc = FindMCObject(doc.getChildAt(j) as DisplayObjectContainer, name);
if( mc ) return mc;
}
}
return null;
}
搜尋舞台裡有沒有實體名稱叫做name的這個物件
應該稍微有點用處
用法:
var mc:MovieClip = FindMCObject(stage, "mc_Test01");
if( mc ) {
mc.visible = true;
mc.gotoAndPlay(0);
}
建議將元件庫裡的元件擺上舞台後,最好都能加以命名
否則你只會看到一堆instance而無從區別各個物件
沒有留言:
張貼留言