2

我正在尝试使用 AS2 学习 Actionscript 2 或 3,我最终通过反复试验发现我可以获取任何命名实例并使用其名称使用的字符串对其进行修改

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

但是当试图将代码转换为 AS3 时_root不再存在。根据迁移文档,它以某种方式被替换,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>";

如何actionscript 3 中按名字获取孩子?

4

2 回答 2

3

只需使用“root”(无下划线)或“stage”,具体取决于您想要做什么。

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

于 2008-11-20T14:28:36.993 回答
2

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

例如,如果您有一个名为 foo 的电影剪辑,您可以使用以下命令引用舞台:

foo.stage

然后从那里去。

foo.stage.someRootLevelObject.htmlText = "Pretty <b>easy</b>";
于 2008-11-20T13:47:57.857 回答