EasyManua.ls Logo

MACROMEDIA FLASH 8-ACTIONSCRIPT 2.0 LANGUAGE - Page 994

MACROMEDIA FLASH 8-ACTIONSCRIPT 2.0 LANGUAGE
1378 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
994 ActionScript classes
The previous example works, but the properties bookcount and bookname are added to every
instance of the
Book object, which requires having two properties for every instance of the
object. If there are many properties, such as
bookcount and bookname, in a class, they could
consume a great deal of memory. Instead, you can add the properties to
Book.prototype so
that the
bookcount and bookname properties exist only in one place. The effect, however, is
the same as that of the code in the example that added
bookcount and bookname directly to
every instance. If an attempt is made to access either property in a Book instance, the
property's absence will cause the prototype chain to be ascended until the versions defined in
Book.prototype are encountered. The following example shows how to add the properties to
Book.prototype:
function Book() {}
Book.prototype.setQuantity = function(numBooks:Number):Void {
this.books = numBooks;
};
Book.prototype.getQuantity = function():Number {
return this.books;
};
Book.prototype.getTitle = function():String {
return "Catcher in the Rye";
};
Book.prototype.addProperty("bookcount", Book.prototype.getQuantity,
Book.prototype.setQuantity);
Book.prototype.addProperty("bookname", Book.prototype.getTitle, null);
var myBook = new Book();
myBook.bookcount = 5;
trace("You ordered "+myBook.bookcount+" copies of "+myBook.bookname);
The following example shows how to use the implicit getter and setter functions available in
ActionScript 2.0. Rather than defining the
Book function and editing Book.prototype, you
define the
Book class in an external file named Book.as. The following code must be in a
separate external file named Book.as that contains only this class definition and resides within
the Flash application's classpath:
class Book {
var books:Number;
function set bookcount(numBooks:Number):Void {
this.books = numBooks;
}
function get bookcount():Number {
return this.books;
}
function get bookname():String {
return "Catcher in the Rye";
}
}

Table of Contents

Related product manuals