在actionscript中创建一个带有图标的按钮

时间:2008-11-18 22:21:14

标签: flex actionscript-3

我想使用Actionscript动态创建带有图标的按钮。

我试过这个,没有成功:

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

5 个答案:

答案 0 :(得分:11)

我找到了一个适合我的答案。在我的.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);

答案 1 :(得分:3)

您可以使用动态更改按钮图标的这一个选项。

嵌入您的图标

[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 :(得分:2)

错误在引号中,@Embed

周围不应有引号
closeButton.setStyle("icon", @Embed(source="images/closeWindowUp.png"));

答案 3 :(得分:1)

我可以使用以下代码在我的按钮中使用图标:

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

文件play.png位于mxml文件的同一文件夹中。

我使用的是Flash Builder 4.6版。

编辑:问题是关于ActionScript而不是MXML,但我留下这个答案仅供参考。

答案 4 :(得分:0)

我假设你要把它添加到舞台上?

另外,我认为你的Embed缺少一个近距离/ paren。

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

应该是:

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