0

例如,如果我有一个扩展 MovieClip 的对象,假设它是某种自定义构建的文本字段类 (InputField)。

InputField 构造函数有 2 个参数(placeholderText:String = null, displayAsPassword:Boolean = false)。

如果我将影片剪辑拖到舞台上,它将被构建,但不会设置参数。有没有办法在构建时设置它们?

需要明确的是,我希望能够只将此影片剪辑拖到舞台上,而不是创建它并从后面的代码中执行 addChild()。

4

2 回答 2

1

您可以在符号本身内部初始化变量,然后将它们放在舞台上后立即设置。您仍然可以从 .as 文件中访问这些变量。

编辑:要扩展注释,当您在已设置的类中声明两个变量时,只需将它们设置为默认情况下您想要的任何值,例如:

class MyInputField
{
  // Will always set following variables to default values, 
  // whether using addChild or dragging symbol onto stage.
  var placeholderText:String = "Enter text here..";
  var displayAsPassword:Boolean = false;

  // If needed, store text field via constructor
  var tf:TextField;

  // Constructor
  function MyInputField()
  {
  }
}
于 2012-09-26T11:42:14.687 回答
1

我不知道这是否是个好主意,但您可以创建一个扩展您的InputField. 您可以更改超级函数内的构造函数参数。

 public function CustomInputField() {
   super("hello", true); 
 }

但是,我会选择一个公共函数init(),其参数与您现在在构造函数中使用的参数相同。

顺便说一句,你在重新发明轮子吗?输入字段被创建一千次。看看Temple 库,它有很好的可扩展组件和表单类。

于 2012-09-26T22:07:38.987 回答