如何禁用简单按钮,包括更改其外观

时间:2009-11-19 16:24:25

标签: actionscript-3 button bitmap flash-cs3

以下是前提:

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

我想要执行以下操作:

  1. 选择按钮上的标记,例如一直用(buttonXglow.png)显示它。
  2. 能够禁用按钮(我正在使用mouseEnabled = false;此时关闭其行为,但我也想将外观更改为(buttonXout.png)图像)。

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

    [Embed(source='button1out.png')]
    public static var Button1Out:Class;
    
  4. 另外,如果我让它工作,我不确定如何用位图实际替换按钮外观。我以为我应该替换按钮的upState。

    提前致谢!

2 个答案:

答案 0 :(得分:2)

  
      
  1. 在AS3中看起来相当复杂,我试图嵌入   (buttonXglow.png)图片用   以下我作为会员   我的主类中的变量,但它   对我来说似乎不起作用。

         

    [嵌入(源= 'button1out.png')]     public static var Button1Out:Class;

  2.         

    (这在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)));   

引导我们进入

  
      
  1. 将所选按钮标记为已选中,例如用它来表现出来   (buttonXglow.png)一直都是。
  2.   
  3. 能够禁用按钮(我正在使用mouseEnabled = false;在   关闭其行为的时刻,   但我也想改变   外观到(buttonXout.png)   图像)。
  4.   
  1. 通过指向

    轻松解决

    button.upState = button.overState;

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

    1. 就像:

      一样简单

      button.upState = button1Out:

    2. (此处还原是一个问题,但因为我只是为了禁用按钮而再次启用它们,所以我很高兴再次启用它们)

答案 1 :(得分:0)

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

无论如何......要显示位图,你需要做一些像myButton.upState = new Button1Out(); ...希望能回答你的问题...:)