AS3访问文本字段

时间:2012-10-15 18:40:05

标签: actionscript-3 movieclip children get-childitem

我有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";
}

如何让它动态运行?

1 个答案:

答案 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。