Вам не нужно создавать отдельные скины, вы можете создать 1 скин и 1 класс (который расширяет Button
) со свойством, которое вы можете установить, чтобы определить, какой значок рисовать на основе кнопки.
Вы можете расширить класс кнопки следующим образом
package com.components
{
import spark.components.Button;
//icons
[Style(name="iconImg",type="*")]
public class IconButton extends Button
{
public function IconButton()
{
super();
}
}
}
На данный момент у вас будет набор IconButton
с, и вам нужно будет установить свойство iconImg
для каждого.
Объявить значок
[Embed('assets/bookmarkIcon.png')]
public static const icon_bookmark:Class;
И установить iconImg
свойство
<components:IconButton id="ibBookmark"
iconImg="{icon_bookmark}"
skinClass="com.skins.IconButtonSkin"
click="" />
Тогда в вашей коже вы используете свойство, подобное этому
<mx:Image id="icon" source="{hostComponent.getStyle('iconImg')}" />