2008-11-20 40 views
2

我努力學習的ActionScript 2或3,AS2我最終通過試驗和錯誤想通,我可以得到任何命名實例和使用字符串使用從AS2到AS3什麼是_root的等值?

var theinstance = "titletext"; // actually exctracted from an array 
_root[theinstance].htmlText = "New text with <b>HTML!</b>"; 

它的名字修改,但嘗試時將代碼轉換爲AS3 _root不再存在。按照migration doc它是由flash.display.DisplayObject.stage莫名其妙地替換,但顯然這是不如何做到這一點:

flash.display.DisplayObject.stage[theinstance].htmlText = "New text with <b>HTML!</b>"; 

也不是這樣的:

flash.display.DisplayObject.stage.getChildByName(theinstance).htmlText = "New text with <b>HTML!</b>"; 

如何我得到一個孩子的名字動作3?

回答

3

只要使用「根」(無下劃線)或「舞臺」,具體取決於你想要做什麼。

但是 - 爲什麼不直接在數組中存儲對textField的引用而不是字符串?

2

「flash.display.DisplayObject」實際上並不是您調用的實際代碼的一部分。相反,該文檔告訴您stage屬性可用於DisplayObject類的任何實例 - 例如,movieClip或sprite。

舉例來說,如果你有一個影片剪輯名爲foo,你可以參考階段用:

foo.stage 

,並從那裏走。

foo.stage.someRootLevelObject.htmlText = "Pretty <b>easy</b>"; 
+0

好的,但我如何使用字符串,而不是硬編碼對象名? – 2008-11-20 14:44:56

+0

var objectName ='someString'; var object = foo.stage [objectName]; – 2008-11-20 15:57:52