Using an example from the web I am trying to
create a custom Panel component that had radio buttons in the panel header for
a specific piece of a web site. The panel works and I am getting 2 radio
buttons but no labels for either button and the radioGroup's
changeStartType() is not being called
. What am I doing wrong? Here is the AS:
package com.wallykolcz.views.components
{
import edu.umich.body.Maps;
import flash.events.Event;
import mx.containers.Panel;
import mx.controls.Button;
import mx.controls.RadioButton;
import mx.controls.RadioButtonGroup;
public class RadioButtonPanel extends Panel
{
//Create Radio Button Group and Buttons
private var startLocation:RadioButtonGroup = new RadioButtonGroup();
private var addressRB:RadioButton = new RadioButton();
private var airportRB:RadioButton = new RadioButton();
private var maps:Maps;
//constructor
public function RadioButtonPanel()
{
super();
}
public function changeStartType():void {
if (startLocation.selectedValue == "address"){
maps.start_txt.text = "Enter Starting Address";
maps.frmAirport.includeInLayout = false;
maps.frmAirport.visible = false;
maps.frmAddress.includeInLayout = true;
maps.frmAddress.visible = true;
maps.submit_btn.visible = true;
}else{
maps.start_txt.text = "Choose Your Airport";
maps.frmAddress.includeInLayout = false;
maps.frmAddress.visible = false;
maps.frmAirport.includeInLayout = true;
maps.frmAirport.visible = true;
maps.submit_btn.visible = true;
}
}
protected override function createChildren():void{
super.createChildren();
//instantiate new radiobuttons and assign properties
addressRB.value="address";
addressRB.label="My Address";
addressRB.groupName = "startLocation";
airportRB.value="airport";
airportRB.label="Airport";
airportRB.groupName="startLocation"
//add event listener for change event and call method
startLocation.addEventListener(Event.CHANGE, changeStartType);
//add the buttons to rawChildren
rawChildren.addChild(addressRB);
rawChildren.addChild(airportRB);
}
protected override function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
//gap between label and edges of button
var margin:int = 4;
//position the buttons in the panel
addressRB.move(145, 15);
airportRB.move(255,15)
}