我正在使用 AIR 为 BlackBerry PlayBook 开发应用程序,并且我需要创建带有渐变的自定义按钮,并且在按下时会产生不同的渐变。文字应根据需要为黑色或白色(由我为应用程序的不同部分决定)。
那么有什么办法可以实现这种按钮吗?
非常感谢任何帮助!
我正在使用 AIR 为 BlackBerry PlayBook 开发应用程序,并且我需要创建带有渐变的自定义按钮,并且在按下时会产生不同的渐变。文字应根据需要为黑色或白色(由我为应用程序的不同部分决定)。
那么有什么办法可以实现这种按钮吗?
非常感谢任何帮助!
出色地...
您可以使用绘图 API 以编程方式创建按钮渐变,或者为每个状态创建和嵌入位图。
然后,您可以创建一个由渐变资源和 textField 对象组成的自定义按钮类,作为具有鼠标/触摸事件的子项,以控制视觉变化并调度按钮自定义事件。
最后,您可以创建自定义按钮事件。
如果您使用的是 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" />