Flex Flash Object.registerClass()

分类:Flash_Flex_AIR| 发布:camnprbubuol| 查看: | 发表时间:2011/1/6

Object.registerClass()

可用性

Flash Player 6。如果您使用的是外部类文件,则可以使用“链接属性”或“元件属性”对话框中的“动作脚本 2.0 类”字段将一个对象与一个类关联,而不是使用此方法。

用法

Object.registerClass(symbolID, theClass)

参数

symbolID 影片剪辑元件的链接标识符,或动作脚本类的字符串标识符。

theClass 指向动作脚本类的构造函数的引用,如果为 null,则取消注册元件。

返回

如果类注册成功,则返回值为 true;否则,返回 false

说明

方法;将影片剪辑元件与动作脚本对象类相关联。如果元件不存在,则 Flash 在字符串标识符和对象类之间创建关联关系。

时间轴放置指定影片剪辑元件的实例时,该实例注册到由 theClass 参数指定的类,而不是注册到 MovieClip 类。

使用 MovieClip.attachMovie()  MovieClip.duplicateMovieClip() 创建指定影片剪辑元件的实例时,该实例注册到由 theClass 指定的类,而不是注册到 MovieClip 类。如果 
theClass  null,则此方法删除任何与指定影片剪辑元件或类标识符相关联的动作脚本类定义。对于影片剪辑元件,该影片剪辑的任何现有实例保持不变,但此元件的新实例将与默认类 MovieClip 相关联。

如果元件已注册到某个类,则此方法用新注册将其替换。

如果影片剪辑实例是由时间轴放置或使用 attachMovie()  duplicateMovieClip() 创建的,则动作脚本使用指向此对象的关键字 this 调用适当类的构造函数。此构造函数在调用时不带有参数。

如果使用此方法将影片剪辑注册到动作脚本类而不是 MovieClip,则该影片剪辑元件不继承内置 MovieClip 类的方法、属性和事件,除非将 MovieClip 类包括在新类的原型链中。下面的代码创建一个新的名为 theClass 的 ActionScript 类,它继承了 MovieClip 类的属性:

theClass.prototype = new MovieClip();

另请参见

MovieClip.attachMovie()MovieClip.duplicateMovieClip()

 

示例

此示例为标准复选框 UI 小部件创建组件。

首先在库中创建一个名为 Check Box 的影片剪辑元件。然后在动作脚本中创建一个表示复选框的 CheckBox 类。

// Define constructor for (and thus define) 
CheckBox class

function CheckBox() {
...
}

// Set CheckBox prototype chain
to inherit from MovieClip

CheckBox.prototype = new MovieClip();

// Define methods for the CheckBox class

CheckBox.prototype.setLabel = function (newLabel) {
this.label = newLabel;
...
};
CheckBox.prototype.setValue = function (newValue) {
this.value = value;
...
};
CheckBox.prototype.getValue = function () {
return this.value;
};
CheckBox.prototype.getLabel = function () {
return this.label;
};

现在必须将 CheckBox 类与 Check Box 影片剪辑元件关联起来。首先,需要能够用动作脚本标识 Check Box 影片剪辑元件。为此,请在库中的“链接”对话框中输入一个标识符,然后选中“为动作脚本导出”。

其次,编写动作脚本将 CheckBox 类与 CheckBox 元件相关联:

Object.registerClass("CheckBox" /*symbolID*/, CheckBox /*theClass*/ );

用法 1(时间轴放置):现在可以使用创作工具将 CheckBox 实例放置在舞台上,这样在运行时此实例将自动接收动作脚本类 CheckBox。如果放置两个实例 myCheckBox1  myCheckBox2,则可以通过调用方法来控制它们,如下所示:

myCheckBox1.setValue(true);
myCheckBox2.setValue(false);
myCheckBox2.setLabel("new label for #2");

用法 2(动态实例):可以在播放影片时,使用 attachMovie 方法在舞台上创建复选框的新实例。因为 CheckBox 元件被注册到动作脚本类 CheckBox,所以新的动态实例将自动接收这个类。

// createCheckBox is a helper function that
// dynamically creates CheckBoxes
function createCheckBox(name, depth) {
attachMovie("CheckBox", name, depth);
}
createCheckBox("myCheckBox3", 100);
myCheckBox3.setValue(false);
myCheckBox3.setLabel("new label for #3");

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/flash-air/163.html