2

这是前提:

我有 10 个按钮,每个按钮都有正常状态图像(buttonX.png)和鼠标悬停状态(buttonXglow.png)。这些按钮是在 Flash 中手动创建的,但在我的 as3 主类中引用。我需要为按钮添加不同的状态。

我想做以下事情:

  1. 将按钮标记为选中,例如始终使用 (buttonXglow.png) 显示它。
  2. 能够禁用按钮(我正在使用 mouseEnabled = false; 目前关闭其行为,但我也想将外观更改为 (buttonXout.png) 图像)。

  3. 在 AS3 中似乎相当复杂,我尝试将 (buttonXglow.png) 图像与我作为成员变量放置在我的主类中的以下内容一起嵌入,但这对我来说似乎不起作用。

    [Embed(source='button1out.png')]
    public static var Button1Out:Class;
    

此外,如果我让它工作,我不确定如何用位图实际替换按钮外观。我在想我应该替换按钮的 upState 。

提前致谢!

4

2 回答 2

2
  1. 在 AS3 中似乎相当复杂,我尝试使用以下内容嵌入 (buttonXglow.png) 图像,这些图像作为成员变量放置在我的主类中,但它似乎对我不起作用。

    [Embed(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)));   

这引导我们

  1. 将按钮标记为选中,例如始终使用 (buttonXglow.png) 显示它。
  2. 能够禁用按钮(我正在使用 mouseEnabled = false; 目前关闭其行为,但我也想将外观更改为 (buttonXout.png) 图像)。
  1. 很容易通过指点解决

    button.upState=button.overState;

(问题是我需要保存 upState 以便恢复它)

  1. 很简单:

    button.upState=button1Out:

(这里的恢复也是一个问题,但因为我只会禁用按钮,所以再也不会启用它们,我很高兴去这里)

于 2009-11-19T19:22:39.507 回答
0

好吧,我会说 ActionScript 是唯一的方法......如果你很幸运,你会找到一个组件,但我想,你必须自己做......

无论如何...要使位图出现,您需要执行类似myButton.upState = new Button1Out();...希望能回答您的问题... :)

于 2009-11-19T16:34:35.940 回答