【问题标题】:How do disable a SimpleButton including changing it's appearance如何禁用简单按钮,包括更改其外观
【发布时间】:2010-12-18 09:15:35
【问题描述】:
这里是前提:
我有 10 个按钮,每个按钮都具有正常状态图像 (buttonX.png) 和鼠标悬停状态 (buttonXglow.png)。这些按钮是在 Flash 中手动创建的,但在我的 as3 主类中引用。
我需要为按钮添加不同的状态。
我想做以下事情:
- 将按钮标记为选中,例如一直用 (buttonXglow.png) 显示它。
能够禁用按钮(我正在使用 mouseEnabled = false;此时它会关闭其行为,但我也想将外观更改为 (buttonXout.png) 图像)。
-
在 AS3 中似乎相当复杂,我尝试使用以下内容嵌入 (buttonXglow.png) 图像,这些图像作为成员变量放置在我的主类中,但它似乎对我不起作用。
[Embed(source='button1out.png')]
public static var Button1Out:Class;
此外,如果我让它工作,我不确定如何用位图实际替换按钮外观。我在想我应该替换按钮的upState。
提前致谢!
【问题讨论】:
标签:
actionscript-3
button
bitmap
flash-cs3
【解决方案1】:
-
在 AS3 中似乎相当复杂,我尝试嵌入
(buttonXglow.png) 图像与
之后我作为成员
我的主类中的变量,但它
似乎不适合我。
[嵌入(source='button1out.png')]
public static var Button1Out:Class;
(这在 flash cs3 中不起作用)
这里的答案似乎是上面的 [Embed(...)] 语法属于 FlashDeveloper,
对于我正在使用的 Flash CS3,该选项是手动将图像导入到库中
并进行设置,以便为每个图像创建一个类(有点耗时,但它有效)。
编辑:请注意,我遇到了“2022 类 %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:
(这里的恢复也是一个问题,但由于我只是要禁用按钮,永远不要再次启用它们,我很高兴去这里)
【解决方案2】:
好吧,我想说 ActionScript 是唯一的出路……如果幸运的话,你会找到一个组件,但我想,你必须自己做……
无论如何...要使位图出现,您需要执行myButton.upState = new Button1Out(); 之类的操作...希望能回答您的问题... :)