<< Chapter < Page | Chapter >> Page > |
Purpose of the class
The purpose of this class is to define the characteristics of an object that will serve as a driver to exercise and to illustrate the behavior of objects ofthe following custom classes:
Inheritance in action
Note that this class extends the standard Flex/ActionScript class named HBox . Thus, an object of the Driver class inherits all of the characteristics defined into the HBox class and adds more characteristics that are unique to an object of the Driver class.
For example, one of the important characteristics inherited from the HBox class is the ability to arrange child components horizontally as shown in Figure 2.
Instantiate custom button objects
Listing 2 instantiates objects of the three custom classes listed above and stores references to those objects in private instance variables with the following names:
Storing the references as private instance variables makes them accessible to the constructor and to methods defined within the Driver class, but makes them inaccessible otherwise.
The constructor for the Driver class
Listing 3 defines the constructor for the Driver class.
public function Driver(){//constructor
addChild(bFlyButton);addChild(frogButton);
addChild(fancyButton);fancyButton.addEventListener(MouseEvent.CLICK,buttonHandler);
}//end constructor
Listing 3 begins by adding the three objects instantiated in Listing 2 to the object being constructed, which is possible because an object of the Driver class is an HBox container. (See the earlier section titled The ISA relationship .)
Then Listing 3 registers a click event handler method named buttonHandler on the FancyButton object.
The method named buttonHandler
The click event handler method named buttonHandler is shown in Listing 4.
private function buttonHandler(
event:MouseEvent):void{fancyButton.toggleSkin();
}//end buttonHandler}//end class
}//end package
This method is executed each time the FancyButton object fires a click event. When the method is executed, it calls the toggleSkin method on the FancyButton object. As you will see later, the toggleSkin method causes the FancyButton object to toggle its skins between butterfly images and frog images.
The end of the Driver class
Listing 4 also signals the end of the class named Driver .
The FancyButton class begins in Listing 5. A complete listing of the class file is provided in Listing 10 near the end of the lesson.
Define a custom button using skins
This class defines a custom button using skins. When the program starts, frog images are used to define the button's skins as shown by the rightmost button inFigure 2. Each time the toggleSkin method is called, the skin switches between frog images and butterfly images.
package CustomClasses{
import mx.controls.Button;public class FancyButton extends Button{[Embed("/Images/frogup.jpg")]
private var frogUp:Class;[Embed("/Images/frogover.jpg")]
private var frogOver:Class;[Embed("/Images/frogdown.jpg")]private var frogDown:Class;[Embed("/Images/frogdisabled.jpg")]
private var frogDisabled:Class;[Embed("/Images/bflyup.jpg")]private var bFlyUp:Class;[Embed("/Images/bflyover.jpg")]
private var bFlyOver:Class;[Embed("/Images/bflydown.jpg")]private var bFlyDown:Class;[Embed("/Images/bflydisabled.jpg")]
private var bFlyDisabled:Class;
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?