您好我正在尝试在动作脚本3中创建一个按钮,该按钮将由自定义图像(来自我的HDD的car.jpg)制作。是否有可能使用SimpleButton类(我的意思是有没有办法加载图像并将其附加到按钮?)或者还有另一种方法吗? 如果我想在按钮上也有动画,那么让我说我从按钮滚过鼠标指针我该怎么办?
ps:我想只使用actionscript 3(我的意思是所有项目都是作为链接到Document类的.as文件完成的。)
答案 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状态,这使得你在处理状态之间的转换时使按钮变得更加僵硬。
希望你觉得这很有用。