虽然 George Profenza 已经在评论下指出了最佳解决方案,但如果您对如何实现 SimpleButton 类感到好奇,您可能想看看 as3 文档参考示例:
adobe livedocs - SimpleButton Example
我还写了一个简单的例子,它只在“复杂按钮”中制作了一个“简单按钮”,但使用了 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 的状态,这使您在处理状态之间的转换时按钮变得更加严格。
希望你觉得这很有用。