Flex4: если я хочу разные значки, я должен создать класс скина для каждой кнопки? - PullRequest
1 голос
/ 04 июня 2010

У меня есть последовательность кнопок, и у каждой кнопки есть свой значок. Мне было интересно, нужно ли создавать файл обложки Spark для каждой кнопки, чтобы назначить ее значок.

спасибо

1 Ответ

1 голос
/ 04 июня 2010

Вам не нужно создавать отдельные скины, вы можете создать 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')}"  />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...