我有3个动画片段,每个都有一个文本框作为孩子。
我用
设置了活动的var myroot:MovieClip = this.root as MovieClip;
var activeText:MovieClip;
这有效
function keyClicked (e:MouseEvent) {
myroot.firstname_mc.getChildAt(0).text += "hello";
}
这不是
function keyClicked (e:MouseEvent) {
activeText.getChildAt(0).text += "hello";
}
如何让它动态运行?
答案 0 :(得分:2)
你的整个问题是你正在尝试做你不应该做的事情。您应该做的是编写封装所需行为的类,并让它们处理细节。例如:
package view {
public class Label extends MovieClip {
/* This is public so the Flash Player can
populate it, not so you can "talk" to it
from outside. This is a stage instance
*/
public var tf:TextField;
protected var _text:String;
public function get text():String {
return _text;
}
public var set text(value:String):void {
if (value != _text) {
_text = value;
tf.text = _text;
}
}
}
}
现在,在您的主Document类中,键入activeText作为Label,然后您可以像这样设置其文本:
activeText.text += 'hello';
现在,您可以重复使用您编写的新类来制作各种不同的标签,只要每个标签都包含一个名为tf的TextField。