2011-06-20 18 views
2

どのように勾配や境界線の色を使用せずにFlex(SDK 3.3)で単純なボタンを作成できますか?私のCSSは以下の通りです。私はまだグラデーションと異なる境界線の色を取得し、私はただ平らな、正方形の、単色のボタンがほしいです。勾配のないフレックスボタン

ありがとうございました!

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以降にアップグレードする場合は、スパーク・ボタンは、カスタム・スキンを使用してこれを実際に簡単に行います。グラデーションを削除するには、塗りつぶしの色をすべて一致させるべきではありませんか? – 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"); 

}