User Guide
328 Appendix E: Object-Oriented Programming with ActionScript 1
myClipClass.prototype.myfunction = function(){
trace("myfunction called");
}
Object.registerClass("myclipID",myClipClass);
this.attachMovie("myclipID","clipName",3);
Creating inheritance in ActionScript 1
Inheritance is a means of organizing, extending, and reusing functionality. Subclasses inherit
properties and methods from superclasses and add their own specialized properties and methods.
For example, reflecting the real world, Bike would be a superclass and MountainBike and Tricycle
would be subclasses of the superclass. Both subclasses contain, or inherit, the methods and
properties of the superclass (for example,
wheels). Each subclass also has its own properties and
methods that extend the superclass (for example, the MountainBike subclass would have a
gears
property). You can use the elements
prototype and __proto__ to create inheritance in
ActionScript.
All constructor functions have a
prototype property that is created automatically when the
function is defined. The
prototype property indicates the default property values for objects
created with that function. You can use the
prototype property to assign properties and methods
to a class. (For more information, see “Assigning methods to a custom object in ActionScript 1”
on page 325.)
All instances of a class have a
__proto__ property that tells you the object from which they
inherit. When you use a constructor function to create an object, the
__proto__ property is set to
refer to the
prototype property of its constructor function.
Inheritance proceeds according to a definite hierarchy. When you call an object’s property or
method, ActionScript looks at the object to see if such an element exists. If it doesn’t exist,
ActionScript looks at the object’s
__proto__ property for the information
(
myObject.__proto__). If the property is not a property of the object’s __proto__ object,
ActionScript looks at
myObject.__proto__.__proto__, and so on.
The following example defines the constructor function
Bike():
function Bike(length, color) {
this.length = length;
this.color = color;
this.pos = 0;
}
The following code adds the roll() method to the Bike class:
Bike.prototype.roll = function() {return this.pos += 20;};
Then, you can trace the position of the bike with the following code:
var myBike = new Bike(55, "blue");
trace(myBike.roll()); // traces 20.
trace(myBike.roll()); // traces 40.