例如,如果我有一个扩展 MovieClip 的对象,假设它是某种自定义构建的文本字段类 (InputField)。
InputField 构造函数有 2 个参数(placeholderText:String = null, displayAsPassword:Boolean = false)。
如果我将影片剪辑拖到舞台上,它将被构建,但不会设置参数。有没有办法在构建时设置它们?
需要明确的是,我希望能够只将此影片剪辑拖到舞台上,而不是创建它并从后面的代码中执行 addChild()。
例如,如果我有一个扩展 MovieClip 的对象,假设它是某种自定义构建的文本字段类 (InputField)。
InputField 构造函数有 2 个参数(placeholderText:String = null, displayAsPassword:Boolean = false)。
如果我将影片剪辑拖到舞台上,它将被构建,但不会设置参数。有没有办法在构建时设置它们?
需要明确的是,我希望能够只将此影片剪辑拖到舞台上,而不是创建它并从后面的代码中执行 addChild()。
您可以在符号本身内部初始化变量,然后将它们放在舞台上后立即设置。您仍然可以从 .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()
{
}
}
我不知道这是否是个好主意,但您可以创建一个扩展您的InputField
. 您可以更改超级函数内的构造函数参数。
public function CustomInputField() {
super("hello", true);
}
但是,我会选择一个公共函数init()
,其参数与您现在在构造函数中使用的参数相同。
顺便说一句,你在重新发明轮子吗?输入字段被创建一千次。看看Temple 库,它有很好的可扩展组件和表单类。