as3,使用参数在舞台上实例化对象

时间:2012-09-26 11:33:17

标签: actionscript-3 flash-cs6

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

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

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

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

2 个答案:

答案 0 :(得分: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()
  {
  }
}

答案 1 :(得分:1)

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

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

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

是的,你重新发明轮子了吗?输入字段创建了一千次。看一下temple library,它具有非常好的可扩展组件和表单类。