<< Chapter < Page | Chapter >> Page > |
//This is an update of the class named QuizA. This version
// stores references to all of the GUI components in a// six-element array and uses for loops to process them
// where appropriate. Note that the GUI components are// instantiated and their references are stored in the
// array when the array is created.package CustomClasses{
import flash.events.*;import mx.containers.VBox;
import mx.controls.Button;import mx.controls.RadioButton;
import mx.controls.TextArea;import mx.events.FlexEvent;public class QuizB extends VBox{
//References to six GUI components are stored in the// following array.
private var components:Array =new Array(new TextArea(),//theQuestion
new RadioButton(),new RadioButton(),
new RadioButton(),new Button(),//checkButton
new TextArea());//resultprivate var theAnswer:String;//numeric stringprivate var correctAnswer:String;//actual string
private var vboxWidth:int = 375;//==================================================//public function set question(textIn:String):void{
components[0].text = textIn;
}//end implicit setterpublic function set answer(answerIn:String):void{theAnswer = answerIn;
}//end implicit setterpublic function set choice0(choice:String):void{components[1].label=choice;}//end implicit setterpublic function set choice1(choice:String):void{
components[2].label=choice;
}//end implicit setterpublic function set choice2(choice:String):void{components[3].label=choice;}//end implicit setter
//==================================================//public function QuizB(){//constructorwidth=vboxWidth;
setStyle("borderStyle","solid");setStyle("backgroundColor",0xffff00);
components[0].editable = false;//theQuestion
components[0].width=vboxWidth - 2;components[1].groupName="radioButtonGroup";components[2].groupName="radioButtonGroup";components[3].groupName="radioButtonGroup";//checkButtoncomponents[4].label = "Click to Check Answer";components[4].addEventListener(MouseEvent.CLICK,checkButtonHandler);//result
components[5].editable = false;
components[5].width=vboxWidth - 2;
components[5].visible=false;
//Add GUI components to the VBox.for(var cnt:int = 0;cnt<components.length;cnt++){
addChild(components[cnt]);
}//end for loop//Register an event listener that will be
// executed when this VBox object has been fully// constructed. It will set the height of
// the VBox based on the sum of the heights// of the components.
this.addEventListener(mx.events.FlexEvent.CREATION_COMPLETE,
vboxCompleteHandler);}//end constructor
//==================================================//private function checkButtonHandler(event:MouseEvent):void{
components[5].visible=true;if(theAnswer == "0"){
correctAnswer = components[1].label;
}else if(theAnswer == "1"){correctAnswer = components[2].label;}else{
correctAnswer = components[3].label;
}//end elseif((theAnswer=="0"&&components[1].selected) ||(theAnswer=="1"&&components[2].selected) ||(theAnswer=="2"&&components[3].selected)){components[5].setStyle("color",0x00ff00);
components[5].text =
"Correct\nCorrect Answer is: "+ correctAnswer;
}else{components[5].setStyle("color",0xff0000);components[5].text = "Wrong\nCorrect Answer is: "+ correctAnswer;
}//end else}//end checkButtonHandler
//==================================================//private function vboxCompleteHandler(event:mx.events.FlexEvent):void{
//Set the height equal to the sum of the// heights of the components plus six
// pixels per component to account for the// space between components.
this.height = 0;for(var cnt:int = 0;cnt<components.length;cnt++){
this.height += components[cnt].height + 6;
}//end for loop}//end vboxCompleteHandler
//==================================================//}//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?