【问题标题】:AS3 create a textField from a classAS3 从一个类创建一个 textField
【发布时间】:2012-01-30 03:01:35
【问题描述】:

我为一个空的阶段创建了一个文档类,并想创建一个输出类,它被导入到文档类中。

在输出类中,我想创建一个带有设置和读取文本的方法的 textField。

a) 文档类为“tommy”的空舞台

b) 文档类“tommy”

package  {
  import flash.display.MovieClip;
  import cOutput;

  public class tommy extends MovieClip {
    var _loc_1:cOutput;

    public function tommy() {
      _loc_6 = new cOutput;
      _loc_6.setOutput();//("hurra");       
    }
  }
}

c) 输出类 cOutput(带或不带扩展 Movieclip)

package {
  //import flash.display.MovieClip;
  import fl.controls.TextInput;

  public class cOutput{ //extends MovieClip {
    public var texteField:TextInput;

    public function cOutput() {
      texteField = new TextInput();
      addChild(texteField);
      texteField.text = "Seriously... I need to be displayed."
    }
    public function setOutput(printValue:String){
      texteField.text = printValue;
    }
  }
}

我收到“定义 fl.controls:TextInput 找不到”。

我读到你需要在图书馆里有这个(我拖了一个文本字段作为经典文本,在舞台上输入文本)。 似乎我没有得到这个工作。

知道我做错了什么吗?

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    使用TextField 类而不是TextInput 类。 TextField 类是最基本的文本组件:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html

    附带说明,您的 addChild() 调用不会做任何事情,因为 cOutput 不是显示对象。

    【讨论】:

    • 谢谢。我将它设为 TextInput,但它不起作用。然后(在 TextInput 之上)我将 cOutput 添加为 Sprite(或 MovieClip),但仍然没有发生任何事情。然后我在 tommy 类中添加了一个 addChild(_loc_6) 并且它出现了。你能解释一下,为什么我要在舞台上添加 _loc_6 虽然我在 cOutput 中添加了一个精灵?
    • 当您将cOutput 添加到_loc_6 时,您只是将其添加为一个孩子——这非常好。问题是 _loc_6 没有添加到 stage (或 tommy 类),所以你没有看到它。只有当您将_loc_6 类添加到tommy 类时,它才会显示(让您执行此操作的flash 意味着您可以构建显示层次结构并仅在完成时显示它)。如果需要,您可以将cOutput 类直接添加到tommy 类中以立即显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多