ButtonTest_01.as

package {

import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;

import flash.events.Event;
import flash.events.MouseEvent;

import fl.controls.Button;

[SWF(backgroundColor = "#B4DCEB", width = "400", height = "150", frameRate = "12")]

public class ButtonTest_01 extends Sprite {

private var button: Button;

        public function ButtonTest_01() {
            stage.showDefaultContextMenu = false;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;

            button = new Button();
            button.name = "my_button";
            button.label = "button";
            button.x = centerAlign(stage.stageWidth, button.width);
            button.y = centerAlign(stage.stageHeight, button.height);
            addChild(button);

            button.addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
        }

        private function clickHandler(event: MouseEvent): void {
            trace("the event occured on: " + event.target.name);
            trace("clickHandler detected an event of type: " + event.type);
        }

        private function centerAlign(param1: Number, param2: Number): int {
            return Math.round((param1 - param2) / 2);
        }
    }
}


ButtonTest_02.as
package {
	
	import fl.controls.Button;
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	[SWF(backgroundColor = "#B4DCEB", width = "400", height = "150", frameRate = "12")]
	
	public class ButtonTest_02 extends Sprite {
		
		private var button:Button;
		
		public function ButtonTest_02() {
			stage.showDefaultContextMenu = false;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			
			button = new Button();
			button.label = "button";
			button.x = centerAlign(stage.stageWidth, button.width);
			button.y = centerAlign(stage.stageHeight, button.height);
			addChild(button);
			
			button.addEventListener(MouseEvent.MOUSE_OVER, mouseEventHandler, false, 0, true);
			button.addEventListener(MouseEvent.MOUSE_OUT, mouseEventHandler, false, 0, true);
			button.addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
			button.addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
		}
		
		private function mouseEventHandler(event:MouseEvent):void {
			txtEvent.text = event.type;
		}
		
		private function centerAlign(param1:Number, param2:Number):int {
			return Math.round((param1 - param2) / 2);
		}
	}
}



ButtonTest_03.as
package {
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	import fl.controls.Button;
	import flash.text.TextFormat;
	
	[SWF(backgroundColor = "#B4DCEB", width = "400", height = "150", frameRate = "12")]
	
	public class ButtonTest_03 extends Sprite {
		
		private var button:Button;
		private var isClick:Boolean;
		
		public function ButtonTest_03() {
			stage.showDefaultContextMenu = false;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			
			button = new Button();
			button.label = "button";
			button.x = centerAlign(stage.stageWidth, button.width);
			button.y = centerAlign(stage.stageHeight, button.height);
			addChild(button);
			
			button.addEventListener(MouseEvent.CLICK, mouseClickHandler, false, 0, true);
		}
		
		private function mouseClickHandler(event:MouseEvent):void {
			if (!isClick) {
				var format:TextFormat = new TextFormat();
				format.size = 12;
			
				event.target.label = "button component";
				event.target.setSize(130, 28);
				event.target.x = centerAlign(stage.stageWidth, button.width);
				event.target.y = centerAlign(stage.stageHeight, button.height);
				event.target.setStyle("textFormat", format);
				isClick = true;
			}
		}
		
		private function centerAlign(param1:Number, param2:Number):int {
			return Math.round((param1 - param2) / 2);
		}
	}
}