以下是前提:
我有10个按钮,每个按钮都有正常状态图像(buttonX.png)和鼠标悬停状态(buttonXglow.png)。这些按钮是在flash中手动创建的,但在我的as3主类中引用。 我需要在按钮上添加不同的状态。
我想要执行以下操作:
能够禁用按钮(我正在使用mouseEnabled = false;此时关闭其行为,但我也想将外观更改为(buttonXout.png)图像)。
在AS3中看起来相当复杂,我试图将(buttonXglow.png)图像嵌入到我的主类中作为成员变量放置的以下内容,但它对我来说似乎不起作用。 / p>
[Embed(source='button1out.png')]
public static var Button1Out:Class;
另外,如果我让它工作,我不确定如何用位图实际替换按钮外观。我以为我应该替换按钮的upState。
提前致谢!
答案 0 :(得分:2)
- 醇>
在AS3中看起来相当复杂,我试图嵌入 (buttonXglow.png)图片用 以下我作为会员 我的主类中的变量,但它 对我来说似乎不起作用。
[嵌入(源= 'button1out.png')] public static var Button1Out:Class;
(这在flash cs3中不起作用)
这里的答案似乎就是上面的[Embed(...)]语法属于FlashDeveloper, 对于Flash CS3,我正在使用该选项是手动将图像导入库中 并设置为每个图像创建一个类(耗时但有效)。
编辑:请注意,我遇到了“2022 Class%1必须从DisplayObject继承以链接到符号”的问题。这似乎是Flash CS3中的一个错误,由于某种原因,Linkage停止工作。我通过删除库中的图像并再次导入它来解决这个问题。
使用“位图属性”窗口中的“链接”选项设置“为ActionScript导出”。 设置类名,基类将设置为flash.display.BitmapData。
在您的代码中,您可以照常使用该类,例如:
var image:Bitmapdata = new Button1outClass(23,23); //请注意,我必须在构造函数中设置宽度和高度。
我使用以下代码生成带位图的Sprite:
button1Out=new Sprite();
button1Out.addChild(new Bitmap(new Button1outClass(23, 23)));
引导我们进入
- 将所选按钮标记为已选中,例如用它来表现出来 (buttonXglow.png)一直都是。
- 能够禁用按钮(我正在使用mouseEnabled = false;在 关闭其行为的时刻, 但我也想改变 外观到(buttonXout.png) 图像)。
醇>
通过指向
轻松解决button.upState = button.overState;
(问题是我需要保存upState以便我可以恢复它)
就像:
一样简单button.upState = button1Out:
(此处还原是一个问题,但因为我只是为了禁用按钮而再次启用它们,所以我很高兴再次启用它们)
答案 1 :(得分:0)
好吧,我会说ActionScript是唯一的方法......如果你很幸运,你会找到一个组件,但我想,你必须自己做...
无论如何......要显示位图,你需要做一些像myButton.upState = new Button1Out();
...希望能回答你的问题...:)