<?xml version="1.0" encoding="utf-8"?>
<mx:Application name="getDefinitionByName_test"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import flash.utils.getDefinitionByName;
import mx.controls.*;
/**
* Create references to component classes so the classes get
* included in the SWF document.
*/
private var dummyArr:Array = [Button, CheckBox, ComboBox,
List, TextInput, TextArea];
private function createBtn_click(evt:MouseEvent):void {
var className:String = comboBox.selectedItem.toString();
var cls:Class = getDefinitionByName(className) as Class;
var instance:UIComponent = new cls();
if (instance) {
switch (instance.className) {
case "Button":
Button(instance).label = "I am a Button";
break;
case "CheckBox":
CheckBox(instance).label = "I am a CheckBox";
break;
case "ComboBox":
ComboBox(instance).dataProvider = ["I am a ComboBox"];
break;
case "List":
List(instance).dataProvider = ["I am a List"];
instance.width = 100;
break;
case "TextInput":
TextInput(instance).text = "I am a TextInput";
break;
case "TextArea":
TextArea(instance).text = "I am a TextArea";
break;
}
canvas.removeAllChildren();
canvas.addChild(instance);
}
}
]]>
</mx:Script>
<mx:ApplicationControlBar dock="true">
<mx:Form styleName="plain"
defaultButton="{createBtn}">
<mx:FormItem label="Class:"
direction="horizontal">
<mx:ComboBox id="comboBox">
<mx:dataProvider>
<mx:Array>
<mx:String>mx.controls.Button</mx:String>
<mx:String>mx.controls.CheckBox</mx:String>
<mx:String>mx.controls.ComboBox</mx:String>
<mx:String>mx.controls.List</mx:String>
<mx:String>mx.controls.TextInput</mx:String>
<mx:String>mx.controls.TextArea</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:ComboBox>
<mx:Button id="createBtn"
label="Create"
click="createBtn_click(event);" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:Canvas id="canvas"
horizontalCenter="0"
verticalCenter="0" />
</mx:Application>