<< Chapter < Page | Chapter >> Page > |
/*This is an ActionScript version of a program that is
similar to the sample MXML program in the documentationfor the Effect class at:
http://livedocs.adobe.com/flex/3/langref/mx/effects/Effect.html. However, several changes were made to the
behavior of the program to make it more suitable for theinstructional purpose.
*/package CustomClasses{
import flash.events.MouseEvent;import mx.containers.ControlBar;
import mx.containers.Panel;import mx.controls.Button;
import mx.controls.Image;import mx.controls.TextArea;
import mx.effects.Resize;import mx.events.EffectEvent;
import mx.events.FlexEvent;public class Driver extends Panel{
//Instantiate and save references to all of the// objects needed by the program.
private var resize:Resize = new Resize();private var textOut:TextArea = new TextArea();
private var image:Image = new Image();private var bar:ControlBar = new ControlBar();
private var startButton:Button = new Button();private var pauseButton:Button = new Button();
private var resumeButton:Button = new Button();private var reverseButton:Button = new Button();
private var endButton:Button = new Button();private var resetButton:Button = new Button();
//--------------------------------------------------//public function Driver(){//constructorthis.title="Demonstration of the Resize effect.";
this.percentWidth = 100;this.percentHeight = 100;
this.addEventListener(FlexEvent.CREATION_COMPLETE,creationCompleteHandler);//Set textOut properties and add to the panel.
textOut.percentWidth = 100;//percenttextOut.height = 100;//pixels
textOut.setStyle("color","0x0000FF");textOut.setStyle("fontSize",14);
textOut.text = "Use the Buttons to control "+ "the size of the image.";
addChild(textOut);//Prepare an embedded image and add the Image// object to the panel.
[Embed("/Images/snowscene.jpg")]var img:Class;
image.load(img);addChild(image);//Add the button bar to the panel.
addChild(bar);//Set text on the six buttons.startButton.label = "Start";
pauseButton.label = "Pause";resumeButton.label = "Resume";
reverseButton.label = "Reverse";endButton.label = "End";
resetButton.label = "Reset";//Register a click listener on each buttonstartButton.addEventListener(
MouseEvent.CLICK,btnHandler);pauseButton.addEventListener(
MouseEvent.CLICK,btnHandler);resumeButton.addEventListener(
MouseEvent.CLICK,btnHandler);reverseButton.addEventListener(
MouseEvent.CLICK,btnHandler);endButton.addEventListener(
MouseEvent.CLICK,btnHandler);resetButton.addEventListener(
MouseEvent.CLICK,btnHandler);//Add the six buttons to the button bar
bar.addChild(startButton);bar.addChild(pauseButton);
bar.addChild(resumeButton);bar.addChild(reverseButton);
bar.addChild(endButton);bar.addChild(resetButton);//Configure the Resize effect. Note that the
// original size of the image is 240x240.resize.target = image;
resize.widthTo = 60;resize.heightTo = 60;
resize.duration = 10000;resize.addEventListener(
EffectEvent.EFFECT_END,endEffectHandler);resize.addEventListener(
EffectEvent.EFFECT_START,startEffectHandler);} //end constructor
//--------------------------------------------------////This common button handler is used to service click// event on all six of the buttons.
private function btnHandler(event:MouseEvent):void{if (event.target == startButton) {
resize.play();//start the effectstartButton.enabled = false;
}else if(event.target == pauseButton){resize.pause();//pause the effect
}else if(event.target == resumeButton){resize.resume();//resume the effect after a pause
}else if(event.target == reverseButton){resize.reverse();//reverse the effect
}else if(event.target == endButton){resize.end();//end the effect prematurely
}else{//reset the program to starting conditionsresize.end();
image.width=240;image.height=240;
startButton.enabled=true;} //end else} //end btnHandler
//--------------------------------------------------////This event handler method is executed when the// effect ends.
private function endEffectHandler(event:EffectEvent):void{
textOut.text += "\nEffect Ended!";} //end event handler
//--------------------------------------------------////This event handler method is executed when the// effect starts
private function startEffectHandler(event:EffectEvent):void{
textOut.text += "\nEffect Started!";} //end event handler
//--------------------------------------------------////This event handler method is executed when the
// application dispatches a creationComplete event.private function creationCompleteHandler(
event:FlexEvent):void{textOut.text += "\nCreation Complete!";
} //end event handler//--------------------------------------------------//} //end class
} //end package
This section contains a variety of miscellaneous materials.
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?