Flex4:如果我想要不同的图标,我应该为每个按钮创建一个皮肤类吗?

时间:2010-06-04 13:23:25

标签: flex flex4

我有一系列按钮,每个按钮都有自己的图标。 我想知道是否必须为每个按钮创建一个Spark皮肤文件,以便分配其图标。

感谢

1 个答案:

答案 0 :(得分:1)

您不必创建单独的皮肤,您可以使用您可以设置的属性制作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')}"  />

然后在你的皮肤中使用这样的属性

{{1}}