OK, so I grabbed a few minutes over lunch today to try a few button tests just to see what I could knock together without having to read too much documentation :P
Well here are the results:
ACTIONSCRIPT:
-
package {
-
import flash.display.MovieClip;
-
import com.flashgen.examples.LozengeButton;
-
-
[SWF(width="100", height="50", backgroundColor="#DFEEEF")]
-
public class AS3LozengeButton extends MovieClip
-
{
-
private var _button :LozengeButton;
-
-
// This it the default constructor for this 'main' class
-
public function AS3LozengeButton()
-
{
-
// instantiate the displayObject class
-
_button = new LozengeButton();
-
-
// set the _button x & y position
-
_button.y = 10;
-
_button.x = 10;
-
-
// finally add it to the DisplayObjectContainer.
-
addChild(_button);
-
}
-
}
-
}
The code above is the default 'main' class from my AS3 project, as you can see it imports two classes - MovieClip (this is required for this class to compile) and my "quick" LozengeButton class.
ACTIONSCRIPT:
-
package com.flashgen.examples {
-
import flash.display.DisplayObject;
-
import flash.display.Shape;
-
import flash.display.Sprite;
-
import flash.display.TextField;
-
import flash.display.SimpleButton;
-
import flash.text.*;
-
-
public class LozengeButton extends Sprite {
-
-
private var _button :SimpleButton;
-
-
public function LozengeButton() {
-
_button = new GenericLozengeButton();
-
addChild(_button);
-
}
-
}
-
-
private class GenericLozengeButton extends SimpleButton
-
{
-
private var _upColor :uint = 0xCCCCCC;
-
private var _overColor :uint = 0x999999;
-
private var _downColor :uint = 0x333333;
-
private var _width :uint = 80;
-
private var _height :uint = 22;
-
private var _radius :uint = 6;
-
-
public function GenericLozengeButton() {
-
-
downState = new ButtonState(_downColor, _width, _height, _radius);
-
overState = new ButtonState(_overColor, _width, _height, _radius);
-
upState = new ButtonState(_upColor, _width, _height, _radius);
-
hitTestState = new ButtonState(_upColor, _width, _height, _radius);
-
useHandCursor = true;
-
}
-
}
-
-
private class ButtonState extends Shape {
-
-
private var _bgColor :uint;
-
private var _width :uint;
-
private var _height :uint;
-
private var _radius :uint;
-
private var _borderSize :uint = 2;
-
private var _borderColor :uint = 0x666666;
-
-
public function ButtonState(bgColor:uint, width:uint, height:uint, radius:uint) {
-
this._bgColor = bgColor;
-
this._width = width;
-
this._height = height;
-
this._radius = radius
-
draw();
-
}
-
-
private function draw():Void {
-
graphics.beginFill(_bgColor);
-
graphics.lineStyle(_borderSize, _borderColor);
-
graphics.drawRoundRect(0, 0, _width, _height, _radius);
-
graphics.endFill();
-
}
-
}
-
}
Have a play and any questions just post them below :)
License
This work is published under a CC-GNU LGPL.
[…] Flash gen puts out a nice AS 3 example class, and suffers some nasty down time thanks to Eclipse […]
Awesome.. can we get a preview too?
@Lawrence, I’ll dig out the code and post up some previews over the weekend :)