我有一组按钮添加到我的 flex 移动应用程序的阶段...我使用“icon”参数在这些按钮上设置了透明的 PNG 图标,但想知道是否有办法隐藏灰色框标准按钮元素?这样我的按钮只会显示为我在按钮上设置的图标......或者是实现按钮皮肤和创建样式的唯一方法(我仍然没有完全掌握。
提前致谢。
我有一组按钮添加到我的 flex 移动应用程序的阶段...我使用“icon”参数在这些按钮上设置了透明的 PNG 图标,但想知道是否有办法隐藏灰色框标准按钮元素?这样我的按钮只会显示为我在按钮上设置的图标......或者是实现按钮皮肤和创建样式的唯一方法(我仍然没有完全掌握。
提前致谢。
有很多方法可以做到这一点。正如 Flextras 所说,您可以删除普通 SparkButtonSkin
绘制的所有内容。但是,这并不是那么简单,因为如果您查看ButtonSkin
该类,它没有BitmapImage
按钮用来显示您的图标的对象。这BitmapImage
实际上是在ButtonSkin
(即SparkButtonSkin
)的基类中定义的。
幸运的是,解决这个问题很简单。下面是扩展基类并添加 BitmapImage 的皮肤。我加回来的原因是
延伸的皮肤SparkButtonSkin
:
<?xml version="1.0" encoding="utf-8"?>
<s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
minWidth="21" minHeight="21"
alpha.disabled="0.5">
<s:states>
<s:State name="up" />
<s:State name="over" />
<s:State name="down" />
<s:State name="disabled" />
</s:states>
<s:BitmapImage id="iconDisplay" alpha=".75" alpha.over="1" alpha.down=".5" alpha.disabled=".25" />
</s:SparkButtonSkin>
另一种解决方法是根本不使用 Button。您可以通过将 BitmapImage 对象用于您的按钮来制作一个更轻量级的版本,该版本就像一个简单的按钮。你必须添加一些交互性(比如可能换掉它用于鼠标按下的图标等)。
<s:BitmapImage source="path/to/my/icon" click="clickHandler()" />