User Guide
About ActionScript 1 329
Instead of adding roll() to the MountainBike class and the Tricycle class, you can create the
MountainBike class with Bike as its superclass, as shown in the following example:
MountainBike.prototype = new Bike();
Now you can call the roll() method of MountainBike, as shown in the following example:
var myKona = new MountainBike(20, "teal");
trace(myKona.roll()); //traces 20
Movie clips do not inherit from each other. To create inheritance with movie clips, you can use
Object.registerClass() to assign a class other than the MovieClip class to movie clips. See
Object.registerClass() in Flash ActionScript Language Reference.
For more information on inheritance, see
Object.__proto__ and super in Flash ActionScript
Language Reference. For information on
#initclip and #endinitclip see “Applying new skins
to a subcomponent” in Using Components.
Adding getter/setter properties to objects in ActionScript 1
You can create getter/setter properties for an object using the
Object.addProperty() method.
A getter function is a function with no parameters. Its return value can be of any type. Its type can
change between invocations. The return value is treated as the current value of the property.
A setter function is a function that takes one parameter, which is the new value of the property.
For instance, if property x is assigned by the statement x = 1, the setter function is passed the
parameter 1 of type Number. The return value of the setter function is ignored.
When Flash reads a getter/setter property, it invokes the getter function, and the function’s return
value becomes a value of
prop. When Flash writes a getter/setter property, it invokes the setter
function and passes it the new value as a parameter. If a property with the given name already
exists, the new property overwrites it.
You can add getter/setter properties to prototype objects. If you add a getter/setter property to a
prototype object, all object instances that inherit the prototype object inherit the getter/setter
property. You can add a getter/setter property in one location, the prototype object, and have it
propagate to all instances of a class (similar to adding methods to prototype objects). If a getter/
setter function is invoked for a getter/setter property in an inherited prototype object, the
reference passed to the getter/setter function is the originally referenced object, not the prototype
object.
For more information, see
“Object.addProperty()” in Flash ActionScript Language Reference.
The Debug > List Variables command in test mode supports getter/setter properties that you add
to objects using
Object.addProperty(). Properties that you add to an object in this way appear
with other properties of the object in the Output panel. Getter/setter properties are identified in
the Output panel with the prefix
[getter/setter]. For more information on the List Variables
command, see “Using the Output panel” on page 162.