Создание кнопки со значком в actionscript

Я хочу создавать кнопки со значками в Flex динамически с помощью Actionscript.

я попробовал это, без успеха:

var closeButton = new Button();
closeButton.setStyle("icon", "@Embed(source='images/closeWindowUp.png");

5 ответов


Я нашел ответ, который работает для меня. В моем.mxml файл, я создаю классы для значков, которые я буду использовать:

// Classes for icons
[Embed(source='images/closeWindowUp.png')]
public static var CloseWindowUp:Class;
[Embed(source='/images/Down_Up.png')]
public static var Down_Up:Class;
[Embed(source='/images/Up_Up.png')]
public static var Up_Up:Class;

в части Actionscript моего приложения я использую эти классы при динамическом создании кнопок:

var buttonHBox:HBox = new HBox();
var closeButton:Button = new Button();
var upButton:Button = new Button();
var downButton:Button = new Button();

closeButton.setStyle("icon", SimpleWLM.CloseWindowUp);
buttonHBox.addChild(closeButton);

upButton.setStyle("icon", SimpleWLM.Up_Up);
buttonHBox.addChild(upButton);

downButton.setStyle("icon", SimpleWLM.Down_Up);
buttonHBox.addChild(downButton);

Вы можете использовать эту опцию динамического изменения значка кнопки.

вставить ваши иконки

[Embed(source='com/images/play.png')]
[Bindable]
public var imagePlay:Class; 

[Embed(source='com/images/pause.png')]
[Bindable]
public var imagePause:Class;

С помощью одной кнопки для переключения воспроизведения и паузы видео

private function playpause():void
{
    if (seesmicVideo.playing)
    {
        seesmicVideo.pause();
        btn_play.setStyle("icon",imagePlay);
    }
    else
    {
        seesmicVideo.play();
        btn_play.setStyle("icon",imagePause);
    }
}        

ошибка в кавычках, не должно быть кавычек вокруг @Embed:

closeButton.setStyle("icon", @Embed(source="images/closeWindowUp.png"));

я смог использовать значок в моей кнопке со следующим кодом:

<mx:Button id="buttonPlay" label="Play" click="playButtonClicked();" enabled="false" icon="@Embed('./play.png')"/>

файла играть.png находится в той же папке файла mxml.

Я использую Flash Builder версии 4.6.

Edit: вопрос был о ActionScript, а не MXML, но я оставляю этот ответ только для справки.


Я предполагаю, что вы добавляете его на сцену?

кроме того, я думаю, что в вашем Embed отсутствует близкая цитата / paren.

closeButton.setStyle("icon", "@Embed(source='images/closeWindowUp.png");

должно быть:

closeButton.setStyle("icon", "@Embed(source='images/closeWindowUp.png')");