我有一个用于发送信息的按钮。当消息文本为空时,不应该单击该按钮。
这很好,不是问题。唯一让我烦恼的是我可以禁用发送按钮,但图像不会被禁用(就像我期望的那样)。
有没有办法优雅地执行此操作,因为我不想提供sendicon_disabled.png
并自行更改(我不认为这应该是我的工作)。
答案 0 :(得分:3)
您可以使用以下按钮:
package
{
import mx.controls.Button;
import mx.core.mx_internal;
use namespace mx_internal;
public class IconButton extends Button
{
private var enabledChanged:Boolean = false;
override public function set enabled(value:Boolean):void
{
if (super.enabled == value)
{
return;
}
super.enabled = value;
enabledChanged = true;
invalidateDisplayList();
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (enabledChanged)
{
if (!enabled && currentIcon)
{
currentIcon.alpha = 0.5;
}
enabledChanged = false;
}
}
}
}
您可以使用自定义alpha
值或将其移至单独的样式。