首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

FLEX自定义组件干的计算器界面

2012-11-08 
FLEX自定义组件做的计算器界面package components{import mx.containers.VBoximport mx.containers.Tile

FLEX自定义组件做的计算器界面

package components{import mx.containers.VBox;import mx.containers.Tile;import mx.controls.TextInput;import mx.controls.Button;import mx.events.FlexEvent;import flash.events.Event;import flash.events.MouseEvent;public class NumericDisplay extends VBox{//定义组件的输入框private var display:TextInput;//定义组件的显示的问题标题private var buttonsTitle:Tile;//添加元标签给IDE看的[Inspectable(defaultValue=10)]private var _numButtons:uint = 10;public function NumericDisplay(){super();//注册初始化事件,该事件是FLEX自身定义的addEventListener(FlexEvent.INITIALIZE, initializeHandler);}//给按钮属性绑定事件,意思是只要触发numButtonsChange事件numButtons数值就会动态的刷新[Bindable(event="numButtonsChange")]public function get numButtons():uint{return _numButtons;}//设置_numButtons属性的值    public function set numButtons(value:uint):void{    _numButtons = value;    //在设置该属性的过程中,把numButtonsChange事件加入到事件流中去。    dispatchEvent(new Event("numButtonsChange"));    }    //由造函数调用    private function initializeHandler(event:FlexEvent):void{    paint();    }    //当点击鼠标左键时相应的时间    private function buttonClickHandler(event:MouseEvent):void{    //在输入框中显示当前时间流中拿到目标对象,并获取他相关的属性值。    display.text += (event.target as Button).label;    }    //画界面    private function paint():void{    //实例化TextInput输入框组件    display = new TextInput();    //设置其宽度    display.width=185;    //并且加入到父组件中去    addChild(display);    //实例化Tile组件    buttonsTitle = new Tile();    //把改组件添加到父组件中去    addChild (buttonsTitle);    //循环创建BUTTON按钮    for (var i:uint = 0; i < _numButtons; i++){    //实例化按钮    var currentButton:Button = new Button();    //设置其LABEL值    currentButton.label=i.toString();    //为当前BUTTON对象注册click事件    currentButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);    //把创建好的BUTTON放入TILE容器中去    buttonsTitle.addChild (currentButton);    }    }}}

?

热点排行