AS 1.0--在 ActionScript 1.0 中创建继承

继承是一种组织、扩展和重用功能的方式。子类会从超类继承属性和方法,并添加其自己的专用属性和方法。例如,就现实世界而言,自行车是一个超类,而山地车和三轮车则是该超类的子类。这两个子类都包含或者说是继承 了超类的方法和属性(例如 wheels)。每个子类还具有其自己的属性和方法,这些属性和方法扩展了超类(例如,MountainBike 子类具有 gears 属性)。在 ActionScript 中可以使用 prototype 和 __proto__ 元素来创建继承。

所有的构造函数都有 prototype 属性,该属性是在定义该函数时自动创建的。prototype 属性表示用该函数创建的对象的默认属性值。可以使用prototype 属性将属性和方法分配给类。(有关详细信息,请参阅在 ActionScript 1.0 中将方法分配给自定义对象。)

类的所有实例都具有 __proto__ 属性,该属性指出这些实例继承自哪个对象。在使用构造函数创建对象时,会将 __proto__ 属性设置为引用其构造函数的prototype 属性。

继承会按照明确的层级向下延伸。在调用对象的属性或方法时,ActionScript 会查看该对象,确定是否存在这样一个元素。如果不存在,ActionScript 会查看该对象的 __proto__ 属性以获得信息 (myObject.__proto__)。如果该属性不是该对象的 __proto__ 对象的属性,ActionScript 就会查看myObject.__proto__.__proto__,依此类推。

下面的示例将定义构造函数 Bike()

function Bike(length, color) {
    this.length = length;
    this.color = color;
    this.pos = 0;
}

下面的代码将 roll() 方法添加到 Bike 类中:

Bike.prototype.roll = function() {return this.pos += 20;};

然后,可以使用下面的代码跟踪该自行车的位置:

var myBike = new Bike(55, "blue");
trace(myBike.roll());   // 输出 20。
trace(myBike.roll());   // 输出 40。

可以创建一个将 Bike 作为超类的 MountainBike 类,这样就不用再向 MountainBike 类和 Tricycle 类中添加 roll() 方法了,如下面的示例所示:

MountainBike.prototype = new Bike();

现在,可以调用 MountainBike 的 roll() 方法,如下面的示例所示:

var myKona = new MountainBike(20, "teal");
trace(myKona.roll());   // 输出 20

影片剪辑不会相互继承。若要在影片剪辑间创建继承,可以使用 Object.registerClass() 给影片剪辑分配一个 MovieClip 类之外的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值