Создать кнопку со значком в ActionScript - PullRequest
7 голосов
/ 19 ноября 2008

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

Я попробовал это, но безуспешно:

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

Ответы [ 5 ]

11 голосов
/ 19 ноября 2008

Я нашел ответ, который работает для меня. В моем файле .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);
3 голосов
/ 29 апреля 2010

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

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

[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);
    }
}        
2 голосов
/ 19 ноября 2008

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

closeButton.setStyle("icon", @Embed(source="images/closeWindowUp.png"));
1 голос
/ 09 января 2014

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

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

файл play.png находится в той же папке, что и файл mxml.

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

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

0 голосов
/ 19 ноября 2008

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

Кроме того, я думаю, что ваш код для вставки не содержит близких цитат / парен.

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

должно быть:

closeButton.setStyle("icon", "@Embed(source='images/closeWindowUp.png')");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...