<< Chapter < Page Chapter >> Page >
Listing

Source code for quizb.as.

//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

Miscellaneous

This section contains a variety of miscellaneous materials.

Housekeeping material
  • Module name: Encapsulation - The Big Picture
  • Files:
    • ActionScript0106\ActionScript0106.htm
    • ActionScript0106\Connexions\ActionScriptXhtml0106.htm
PDF disclaimer: Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should be aware that some of the HTML elements in this module may not translate well intoPDF.

-end-

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with actionscript. OpenStax CNX. Jun 04, 2010 Download for free at http://cnx.org/content/col11202/1.19
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?

Ask