ActionScript 3 -通过变量设置movieClip内textField的文本



舞台上有一个实例名为movieClipA的movieClip,其中包含一个实例名为myTextFieldtextField

还有一个名为whichTextField的字符串变量,它的值被设置为myTextField

var whichTextField:String = "myTextField";
movieClipA.myTextField.text = "ABC"; // WORKS.
movieClipA.whichTextField.text = "ABC"; // DOESN'T WORK.

我如何在我的代码中使用whichTextField这个词来使它工作?

var whichTextField:String = "myTextField";
movieClipA.myTextField.text = "ABC"; // WORKS.
movieClipA[whichTextField].text = "ABC"; // WORKS.

通过一点点搜索,我找到了这个解决方案。如果你能想到什么,请分享你的:

var whichTextField:String = "myTextField";
movieClipA.myTextField.text = "ABC"; // WORKS.
// movieClipA.whichTextField.text = "ABC"; // DOESN'T WORK.
this["movieClipA"].getChildByName(whichTextField).text = "ABC"; // WORKS!

我也发现了另一个解决方案,如果movieClipA是在另一个电影剪辑像movieClipB。那么这个语法将解决这个问题:

movieClipB.movieClipA.getChildByName(whichTextField).text = "ABC";

这个语法也可以使用:

movieClipB["movieClipA"].getChildByName(whichTextField).text = "ABC";

一般来说,如果实例在舞台上,您可以使用点符号或括号。但是如果实例是通过actionscript添加的,你应该使用getChildByName .

最新更新