<< Chapter < Page | Chapter >> Page > |
There is nothing new in Listing 12 so further explanation shouldn't be required. It is worth noting, however, that the same click event listener is registered on both buttons.
Set properties on the custom effect
Listing 13 shows the code that sets properties on the custom effect.
//Specify both buttons to be the target for the
// same effect.theEffect.targets = [btnA,btnB];//Set various properties needed by the effect.theEffect.theDuration = 4000;
theEffect.rotateAngleFrom = 0;theEffect.rotateAngleTo = 720;
theEffect.wipeShowTarget = true;theEffect.glowColor = 0xFF0000;
theEffect.glowInner = true;theEffect.glowStrength = 255;
} //end constructor
With the exception of the property named targets , the values that are assigned in Listing 13 are stored in the variables that are declared inListing 2.
The targets property
The targets property is inherited into the CustomEffect class from the Effect class. Note that both buttons are passed to the targets property in the form of an array containing references to the two buttons. This causes thecustom effect to be played on both buttons at the same time.
Listing 13 also signals the end of the constructor for the Driver class.
The common click event handler
The click event handler that is registered on both buttons is shown in Listing 14.
public function handler(event:MouseEvent):void{
theEffect.play();}//end handler
} //end class} //end package
The event handler calls the play method on the custom effect object whenever either of the buttons shown in Figure 1 is clicked. This causesthe play method defined in Listing 9 to be executed.
The end of the program
Listing 14 also signals the end of the program named CustomEffect02 .
The Driver class for the program named CustomEffect03 begins in Listing 15. A complete listing of the class is provided in Listing 22 near the end of the lesson. This program usesthe first approach for playing an effect.
package CustomClasses{
import mx.containers.VBox;import mx.controls.Button;
import mx.controls.Label;import mx.controls.Spacer;
public class Driver extends VBox{//Instantiate and save references to all of the
// objects needed by the program.private var title:Label = new Label();
private var btnA:Button = new Button();private var btnB:Button = new Button();
private var spacer:Spacer = new Spacer();private var theEffect:CustomEffect =
new CustomEffect();//--------------------------------------------------//public function Driver(){//constructor
//Make some space at the top of the display.spacer.height = 40;
addChild(spacer);//Set title properties and add to the VBox.title.setStyle("color","0xFFFF00");
title.setStyle("fontSize",14);title.text = "Demo custom effect";
addChild(title);//Instantiate two buttons and add them to the VBox.
// Register the same event listener on both of// them.
btnA.label = "Click me and watch the effect.";addChild(btnA);btnB.label = "Or click me instead.";
addChild(btnB);
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?