2011-02-02 69 views
0

假設您的應用中有大量(N)個閃光按鈕。我們還要說,你的按鈕都有非常相似的皮膚(大小,各種效果等) - 唯一的區別是它們用作BitmapImage的特定png。 你最終是否有N個皮膚文件,所有區別都是1行?或者,當你在MXML中創建按鈕時(實際上,理想情況下沒有),在添加大量代碼的同時還有更智能的方法。剝皮多個UI組件

回答

1

創建自定義按鈕有圖標SkinPart類型爲BitmapImage的,您就可以使用所有按鈕相同皮膚:

<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的體驗很少。任何機會,你可以發佈一些代碼? – 2011-02-02 15:57:02