我在舞臺上有一個簡單的帶有單個矩形的Flash文檔。我製作了矩形符號,一個MovieClip,並將其實例名稱設置爲「test_symbol_name」。我已將此文檔發佈到.swf。 (這裏的.fla和.swf)Flash:設置Flash文檔的實例名稱
在AS3 Flash Builder項目我加載瑞士法郎用裝載機,則跟蹤具有這種功能,它的顯示列表中的所有內容:
public static function traceDisplayList(container:DisplayObjectContainer, indentString:String = "->"):void {
var child:DisplayObject;
for (var i:uint=0; i < container.numChildren; i++) {
child = container.getChildAt(i);
trace(indentString, child.parent.name + " " + indentString + " " + child.name);
if (container.getChildAt(i) is DisplayObjectContainer) {
traceDisplayList(DisplayObjectContainer(child), indentString + "->");
}
}
}
這裏的輸出:
-> instance471 -> instance472
->-> instance472 ->-> instance473
->-> instance472 ->-> test_symbol_name
->->-> test_symbol_name ->->-> instance474
我的符號嵌套在instance472裏面,它在instance471裏面。
我可以通過指定包含符號(472),像這樣的代碼達到符號:
var myTestSymbol:MovieClip = (loader.getChildByName('instance472') as DisplayObjectContainer).getChildByName('test_symbol_name') as MovieClip;
這裏是我的問題
什麼是instance472和instance471?他們是文檔和舞臺,還是其他的東西?
當我發佈swf時,實例號可以更改。我必須調整我的代碼以匹配最新的號碼才能使其工作。我怎樣才能命名instance471?
這是正確的方法,還是有更好的方法來達到我的符號實例?
試着給你的Loader一個名字。看看你帶給你什麼...... – ThomasM 2011-04-20 12:25:20
@ThomasM的Loader被命名爲loader:var loader:Loader = new Loader(); – 2011-04-20 13:05:07
是的,我知道,但這是可變名稱。嘗試使用loader.name =「frigginLoader」給它一個實例名稱;然後再次追蹤顯示列表...我的猜測是,instance471將是你的加載器... – ThomasM 2011-04-20 15:44:26