开发环境:FlashDevelop
步骤:
1.新建一个as3工程:MyButton
目录:E:/ActionScript/MyButton
2.在工程下新建一个Image文件夹,向其中添加3张图片
目录:E:/ActionScript/LoadPng/image/
3.新建一个Sprite类型的新类MyButton,代码如下:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.SimpleButton;
import flash.display.Sprite;
public class MyButton extends Sprite
{
private var mSimpleButton:SimpleButton; //按钮的3个状态,普通、鼠标在上面、鼠标单击
private var mGrayButton:Bitmap; //按钮的不可用状态(按钮为灰色)
public function MyButton()
{
}
//设置按钮参数
public function SetParameter(normalBD:BitmapData, overBD:BitmapData, downBD:BitmapData, grayBD:BitmapData = null):void
{
//先清空
for (var i:int = 0; i < numChildren; )
removeChildAt(i);
//SimpleButton
var normal:Bitmap = new Bitmap(normalBD);
var over:Bitmap = new Bitmap(overBD);
var down:Bitmap = new Bitmap(downBD);
mSimpleButton = new SimpleButton(normal, over, down, over);
addChild(mSimpleButton);
//灰色按钮
mGrayButton = new Bitmap(grayBD);
addChild(mGrayButton);
mGrayButton.visible = false;
}
//设置按钮是否可用
public function SetEnable(enable:Boolean):void
{
this.mouseEnabled = enable ? true : false; //设置MyButton是否接收鼠标消息
this.mouseChildren = enable ? true : false; //设置MyButton的children是否接收鼠标消息
mSimpleButton.visible = enable ? true : false;
mGrayButton.visible = enable ? false : true;
}
}
}
4.在Main.as中敲入如下代码:
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
public class Main extends Sprite
{
[Embed(source = "../image/bg.jpg")]
private var BG:Class;
private var mBg:Bitmap;
[Embed(source = "../image/btn_0.png")]
private var BTN0:Class;
private var mBtn0:Bitmap;
[Embed(source = "../image/btn_1.png")]
private var BTN1:Class;
private var mBtn1:Bitmap;
[Embed(source = "../image/btn_2.png")]
private var BTN2:Class;
private var mBtn2:Bitmap;
public function Main():void
{
mBg = new BG as Bitmap;
mBtn0 = new BTN0 as Bitmap;
mBtn1 = new BTN1 as Bitmap;
mBtn2 = new BTN2 as Bitmap;
//添加背景
addChild(mBg);
//添加按钮
var button:MyButton = new MyButton;
button.SetParameter(mBtn0.bitmapData, mBtn1.bitmapData, mBtn2.bitmapData);
addChild(button);
button.x = 100;
button.y = 100;
}
}
}
说明:as3提供了简单按钮的实现类SimpleButton,可实现简单的自定义按钮,
只需要初始化的时候传入相应的参数。
var simpleButton:SimpleButton = new SimpleButton(normal,mouseOver,mouseDown,mouseOver);
缺点:1.无法再向SimpleButton中利用addChild()添加内容
2.没有变灰的不可用状态