2011-06-09 17 views
1

我有一個用於發送消息的按鈕。當消息文本爲空時,應該不可能點擊按鈕。如何禁用Flex3按鈕上的圖標

這很好,不是問題。唯一困擾我的是我可以禁用發送按鈕,但圖像不會被禁用(就像我期望的那樣)。

有沒有辦法做到這一點,因爲我不想提供sendicon_disabled.png並自己改變它(我認爲這不應該是我的工作)。

回答

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值或將其移動到不同的風格。

+1

+1不錯的一個君士坦丁。這也是過去一直困擾我的東西。我一定要保留這個以備將來使用。 – 2011-06-09 15:03:28

+0

這很好,謝謝! – Besi 2011-07-29 15:34:52