Couple of hours I was “googling” to find the best solution on how to create Checkboxes and Radio Buttons on fly in ActionScript 3 under Flex4. Unfortunately for me, everything, that I was able to find was either outdated, or just not for me. So I created my script from scratch, and decided to share it with you, so you could re-use it in your projects ( don’t forget to link on me 🙂 ).
I have made a lot of comments so you could easier understand how it works, but if you have questions, please ask. Also this function is easy editable so you could adopt it to your needs.
// function receives Array.length and ArrayCollection private function createButtons(amount:uint, content:ArrayCollection):void{ var _cb:CheckBox; var _rb:RadioButton; var _tx: Text; var _hb: HBox; // creating buttons one by one for (var i:int = 0; i < amount; i++) { _tx = new Text(); _hb = new HBox(); _tx.name = "option" +i; _tx.width = 200; // assigning array element to text field _tx.text =content.getItemAt(i).toString(); //adding HBox to the view options.addChild(_hb); // if global var _isMultiple is true drawcheckboxes, // otherwise radioButtons if(_isMultiple){ _cb= new CheckBox(); // giving button a name of array element to process it easier later _cb.name=content.getItemAt(i).toString(); // defining gap between the buttons _cb.y=i*20; // adding buttons to the Horizontal Box _hb.addChild(_cb); }else{ // if not _isMultiple _rb = new RadioButton(); // giving button a name of array elelment to process it easier later _rb.name = content.getItemAt(i).toString(); // assigning radio to the same group _rb.groupName = "answers"; _rb.label ="*"; _hb.addChild(_rb); } // adding text near button _hb.addChild(_tx); } // end of loop } // end of function
options is repesented as:
<mx:Box id="options" > </mx:Box>
Here is what I’ve got (when _isMultiple is false):
Cheers,
Anatoly
Thanks for installing the Bottom of every post plugin by Corey Salzano. Contact me if you need custom WordPress plugins or website design.
very nice post, i certainly love this website, keep on it