从AS2到AS3,_root的等价是什么?

时间:2008-11-20 13:39:31

标签: actionscript-3 migration actionscript-2

我正在尝试使用AS2学习Actionscript 2或3我最终通过反复试验得出我可以获得任何命名实例并使用带有其名称的字符串修改它

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

但是当尝试将代码转换为AS3 _root时,不再存在。根据{{​​3}},它以某种方式被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中按名字命名了一个孩子?

2 个答案:

答案 0 :(得分:3)

根据您想要做的事情,只使用“root”(无下划线)或“stage”。

但是 - 为什么不在数组中存储对textField的引用而不是字符串?

答案 1 :(得分:2)

“flash.display.DisplayObject”并不是您调用的实际代码的一部分。相反,文档告诉您舞台属性可用于DisplayObject类的任何实例 - 例如,movieClip或精灵。

例如,如果您有一个名为foo的movieClip,则可以使用以下内容引用该舞台:

foo.stage

然后从那里开始。

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