0

我正在使用 AIR 为 BlackBerry PlayBook 开发应用程序,并且我需要创建带有渐变的自定义按钮,并且在按下时会产生不同的渐变。文字应根据需要为黑色或白色(由我为应用程序的不同部分决定)。

那么有什么办法可以实现这种按钮吗?

非常感谢任何帮助!

4

3 回答 3

1

出色地...

  1. 您可以使用绘图 API 以编程方式创建按钮渐变,或者为每个状态创建和嵌入位图。

  2. 然后,您可以创建一个由渐变资源和 textField 对象组成的自定义按钮类,作为具有鼠标/触摸事件的子项,以控制视觉变化并调度按钮自定义事件。

  3. 最后,您可以创建自定义按钮事件。

于 2012-05-05T16:09:58.773 回答
0

您应该为qnx.fuse.ui.buttons.Button创建一个自定义按钮皮肤

于 2012-05-07T13:42:59.543 回答
0

如果您使用的是 spark 组件按钮,则需要使用 SkinClass 属性,您可以在其中传递任何皮肤对象。在此皮肤中,您可以设置状态,如 up 、 down 、 over 、 disabled 。

// 创建皮肤类的代码

<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark">
<!-- host component -->
<fx:Metadata>
    [HostComponent("ImageButton")]
</fx:Metadata>

<!-- states -->
<s:states>
    <s:State name="down" />
    <s:State name="over" />
    <s:State name="up" />
    <s:State name="disabled" />
</s:states>

<!-- SkinParts
name=labelDisplay, type=spark.core.IDisplayText, required=false
name=iconDisplay, type=spark.primitives.BitmapImage, required=false
-->
<s:BitmapImage source="@Embed('add_audio.png')"       includeIn="disabled" />
<s:BitmapImage source="@Embed('add_audio.png')"       includeIn="up" />
<s:BitmapImage source="@Embed(add_audio_press.png')"  includeIn="over"/>
<s:BitmapImage source="@Embed('add_audio_press.png')" includeIn="down"/>

// 创建一个自定义按钮类

package

{ 进口火花.components.Button;

public class ImageButton extends Button
{
    public function ImageButton()
    {
        super();
        this.buttonMode=true;
    }
}

}

像这样使用这两个类。

<local:ImageButton x="2" y="43" skinClass="skins.audio.Cut" />
于 2012-08-01T04:27:30.973 回答