2011-06-20 26 views
2

如何在Flex(SDK 3.3)中創建沒有任何漸變或邊框顏色的簡單按鈕?我的CSS如下所示。我仍然得到漸變和不同的邊框顏色,我只想要一個簡單的方形純色按鈕。沒有漸變的Flex按鈕

謝謝!

Button { 
    fontWeight:normal; 
    color:white; 
    fillAlphas: 1, 1, 1, 1; 
    fillColors: "0x0087B8", "0x0087B8","0x4A1870", "0x4A1870"; 
    cornerRadius: 0; 
    focusAlpha: 1; 
    borderColor:"0x0087B8"; 
    borderAlpha:1; 
    textRollOverColor: white; 

} 
+1

只想說,如果你升級到Flex 4或更高版本; Spark Button使得它可以很容易地做到這一點,自定義皮膚。要刪除漸變,您的填充顏色不應該全部相同嗎? – JeffryHouser

+0

與上面的Flextras一致,填充顏色應該是相同的,一般來說在Flex 3中,我會設置一個程序化的皮膚,只是做簡單的繪圖,如果你要非常簡潔的看,並不害怕進入一點與圖形類的繪圖。 http://livedocs.adobe.com/flex/3/html/help.html?content=skinning_5.html – shaunhusain

回答

1

感謝您的輸入,我不得不創建一個programmtic皮膚像這樣:

public class TIMPButtonSkin extends ProgrammaticSkin 
{ 
    public var backgroundFillColor:Number; 
    public var lineThickness:Number; 

    public function TIMPButtonSkin() 
    { 
     super(); 

    } 

    override protected function updateDisplayList(w:Number, h:Number):void { 

     var btn:Button = parent as Button; 
     btn.buttonMode = true; 

     switch (name) { 
      case "upSkin": 
       backgroundFillColor = 0x0087B8; 
       break; 
      case "overSkin": 
       backgroundFillColor = 0x4A1870; 
       break; 
      case "downSkin": 
       backgroundFillColor = 0x4A1870; 
       break; 
      case "disabledSkin": 
       break; 
     } 

     // Draw the box using the new values. 
     var g:Graphics = graphics; 
     g.clear(); 
     g.beginFill(backgroundFillColor,1.0); 
     g.lineStyle(lineThickness, 0xFF0000); 
     g.drawRect(0, 0, w, h); 
     g.endFill(); 
    } 
} 

的CSS是這樣的:

Button { 
fontWeight:normal; 
color:white; 
cornerRadius: 0; 
textRollOverColor: white; 
textSelectedColor:white; 
skin: ClassReference("TIMP.TIMPButtonSkin"); 

}