舞台上有一个实例名为movieClipA
的movieClip,其中包含一个实例名为myTextField
的textField
。
还有一个名为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
.