2012-12-25 55 views
0

我有一个自定义皮肤的spark按钮。更改Flex按钮图标使用皮肤的Alpha

我需要控制使用皮肤设置为按钮图标的图像的alpha值。即我需要图像通过改变按钮状态来改变其不透明度。

是否有解决方法,使用皮肤类,而不是写入事件处理程序?

回答

2

当您创建新的按钮外观时,您可以在那里看到生成的mxml标记,它根据状态设置不同梯度的梯度。

所以,你可以设置不同状态的α值在图像像

<s:Image alpha.disabled="0.1" alpha.over="0.4" />等。

更新:

现在我明白你的问题。图标(由icon属性设置)由spark.skins.SparkButtonSkin中的代码定义和管理,并且您生成的外观将扩展该类。

呈现图标的控制ID为iconDisplay,其类型为BitmapImage

所以,你可以通过添加如下代码到你的皮肤产生改变其行为:

<s:BitmapImage id="iconDisplay" 
        alpha.down="0.5" 
        alpha.over="0.7" 
        alpha.up="0" 
        /> 

它不会添加另一个图标。

+0

但在生成的皮肤中,我找不到该图标的任何部分。你是否建议添加一个新的图标组件。 – Saju