使用组件 |
|
|
|
| 创建组件 > 创建 ActionScript 类文件 > 关于核心函数 > 定义 createChildren() 方法 | |||
组件实现 createChildren() 方法,以便在组件中创建子对象(如其它组件)。调用 createClassObject() 或 createObject(),而不在 createChildren() 方法中调用子对象的构造函数,来实例化组件的子对象。
最好在 createChildren() 方法中调用 size(),以确保所有子级最初都设置为合适的大小。此外,在 createChildren() 方法中调用 invalidate() 可以刷新屏幕。(有关详细信息,请参阅关于无效。)
createClassObject() 方法的语法如下:
createClassObject(className, instanceName, depth, initObject)
下表对参数进行说明:
|
参数 |
类型 |
说明 |
|---|---|---|
|
|
Object |
类的名称。 |
|
|
String |
实例的名称。 |
|
|
Number |
实例的深度。 |
|
|
Object |
包含初始化属性的对象。 |
要调用 createClassObject(),必须知道有哪些子级,这是因为必须在 createClassObject() 调用中指定对象的名称和类型以及所有初始化参数。
下面的示例调用 createClassObject() 创建一个在组件内使用的新 Button 对象:
up_mc.createClassObject(mx.controls.Button, "submit_btn", 1);
在 createClassObject() 调用中设置属性,方法是将这些属性作为 initObject 参数的一部分进行添加。下面的示例设置 label 属性的值:
form.createClassObject(mx.controls.CheckBox, "cb", 0, {label:"Check this"});
下面的示例创建 TextInput 和 SimpleButton 组件:
function createChildren():Void {
if (text_mc == undefined)
createClassObject(TextInput, "text_mc", 0, { preferredWidth: 80, editable:false });
text_mc.addEventListener("change", this);
text_mc.addEventListener("focusOut", this);
if (mode_mc == undefined)
createClassObject(SimpleButton, "mode_mc", 1, { falseUpSkin: modeUpSkinName, falseOverSkin: modeOverSkinName, falseDownSkin: modeDownSkinName });
mode_mc.addEventListener("click", this);
size()
invalidate()
}
|
|
|
|