带图像的自定义按钮

时间:2010-02-09 09:36:50

标签: actionscript-3 flash-cs4

您好我正在尝试在动作脚本3中创建一个按钮,该按钮将由自定义图像(来自我的HDD的car.jpg)制作。是否有可能使用SimpleButton类(我的意思是有没有办法加载图像并将其附加到按钮?)或者还有另一种方法吗?  如果我想在按钮上也有动画,那么让我说我从按钮滚过鼠标指针我该怎么办?

ps:我想只使用actionscript 3(我的意思是所有项目都是作为链接到Document类的.as文件完成的。)

1 个答案:

答案 0 :(得分:3)

虽然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的事情是让你不必设置监听器,但你有义务绕过分离的DisplayObjects状态,这使得你在处理状态之间的转换时使按钮变得更加僵硬。

希望你觉得这很有用。