Хотя Джордж Профенца уже указал на лучшее решение в комментарии, если вам любопытно, как можно реализовать класс SimpleButton, вы можете взглянуть на справочные примеры документа as3:
Adobe liveocs - Пример SimpleButton
Я также написал простой пример, который превращает «простую кнопку» только в «сложную кнопку», но использует класс SimpleButton, поэтому вы можете посмотреть, как можно расширить класс, и присвоить каждому состоянию его собственная графика. Вот код:
// this goes in your app
var button:MySimpleButton = new MySimpleButton();
addChild(button);
MySimpleButton.as
package
{
import flash.display.DisplayObject;
import flash.display.SimpleButton;
import flash.display.Sprite;
public class MySimpleButton extends SimpleButton
{
private var upAlpha : Number = 1;
private var overAlpha : Number = 0.5;
public function MySimpleButton(upState : DisplayObject = null, overState : DisplayObject = null, downState : DisplayObject = null, hitTestState : DisplayObject = null)
{
upState = new ButtonImgDisplayState( upAlpha);
overState = new ButtonImgDisplayState( overAlpha);
downState = new ButtonImgDisplayState( upAlpha);
hitTestState = new ButtonImgDisplayState( upAlpha);
super(upState, overState, downState, hitTestState);
}
}
}
ButtonImgDisplayState.as
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.net.URLRequest;
public class ButtonImgDisplayState extends Sprite
{
public function ButtonImgDisplayState(_alpha:Number)
{
var my_loader : Loader = new Loader();
my_loader.load(new URLRequest("car.jpg"));
addChild(my_loader);
this.alpha = _alpha;
}
}
}
Смысл SimpleButton в том, чтобы избавить вас от установки слушателей, но вы обязаны обходить состояния, которые разделены объектами DisplayObject, что делает вас более жёстким при работе с переходами между состояниями.
Надеюсь, вы найдете это полезным.