2011-02-02 5 views
0

アプリにスパーク・ボタンが多数(N個)あるとします。また、あなたのボタンはすべて、非常に似たスキン(サイズ、さまざまなエフェクトなど)を持っているとします。唯一の違いは、BitmapImageとして使用する特定のPNGです。 N個のスキンファイルで終わりますか?すべて1行違いですか?あるいは、MXMLでボタンを作成するときにコードを追加しないでこれを行うよりスマートな方法があります(実際には、理想的にはnone)。あなたが同じすべてのボタン用のスキンを使用できるようになりますSkinPartがBitmapImageのとして型指定されたアイコンでカスタムボタンの作成複数のUIコンポーネントをスキニングする

答えて

1

<YourCustomButton icon="@Embed('yourIconFile.png') /> 

CustomButton.as

public class CustomButton extends Button 
    { 
     [SkinPart(required="false")] 
     public var iconContainer:BitmapImage; 

     private var _icon:Object; 

     public function CustomButton() 
     { 
      super(); 
     } 

     override protected function partAdded(partName:String, instance:Object):void 
     { 
      super.partAdded(partName, instance); 

      if (instance == iconContainer && _icon) 
       iconContainer.source = _icon; 
     } 

     public function get icon():Object 
     { 
      return _icon; 
     } 
     public function set icon(value:Object):void 
     { 
      if (iconContainer) 
       iconContainer.source = value; 

      _icon = value; 
     } 
    } 
+0

フロリアンを、ありがとうあなたの助言のために。私はあなたが何かに乗っていると思っていますが、私はそれをどのように設定しているのかはっきりしていません - 私は試してみましたが、SkinPartの経験はほとんどありません。任意のコードを投稿する可能性がありますか? –

+0

私の編集した答えを参照してください –

+0

フロリアン、ありがとう、これは完璧です! –

関連する問題