2008
Jun
05
ImageButton class
Tags:
Flex
Easiest way to make custom irregular shaped buttons using AS3, is extending the mx.controls.Image. Here is an example:
package com.comeks.components { import flash.events.*; import mx.events.*; import mx.controls.Image; public class ImageButton extends Image { private var outTransform:ColorTransform = new ColorTransform(1,1,1); private var overTransform:ColorTransform = new ColorTransform(.8,1,1); private var downTransform:ColorTransform = new ColorTransform(1,0.9,1); private var _disabled:Boolean = false; public function ImageButton() { addEventListener(MouseEvent.MOUSE_OVER, mouseOver); addEventListener(MouseEvent.MOUSE_OUT, mouseOut); addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); addEventListener(MouseEvent.MOUSE_UP, mouseUp); buttonMode = true; } public function disable():void { _disabled = true; transform.colorTransform = outTransform; alpha = 0.4; buttonMode = false; } public function enable():void { _disabled = false; transform.colorTransform = outTransform; alpha = 1.0; buttonMode = true; } public function isOver(event:MouseEvent):Boolean { return hitTestPoint(event.stageX, event.stageY, true); } private function mouseOut(evt:MouseEvent):void { if(!_disabled) { transform.colorTransform = outTransform; } } private function mouseOver(evt:MouseEvent):void { if(!_disabled) { transform.colorTransform = overTransform; } } private function mouseDown(evt:MouseEvent):void { if(!_disabled) { transform.colorTransform = downTransform; } } private function mouseUp(evt:MouseEvent):void { if(!_disabled) { transform.colorTransform = outTransform; dispatchEvent( new MouseEvent(MouseEvent.CLICK)); } } } } |
Use it like this:
[Bindable] [Embed(source="assets/mini-trash.png")] private var trashIcon:Class var trashButton:ImageButton = new ImageButton(); trashButton.source = trashIcon; trashButton.addEventListener(MouseEvent.CLICK, trashButtonClicked); addChild(trashButton); |
Add New Comment
Thanks. Your comment is awaiting approval by a moderator.
Do you already have an account? Log in and claim this comment.
Add New Comment