尝试使用循环生成按钮,但Icon属性会导致问题

时间:2011-03-28 09:14:21

标签: flex actionscript mxml

我正在尝试使用数组循环生成一个按钮,但我无法使图标样式和样式名称起作用:(

        for (var x:int = 0; x < smileys.length; x++ ) {
            var emoticon:Button = new Button();
            var label:String = smileys[x][0];
            emoticon.width = 24; emoticon.height = 24;
            emoticon.x = positionX; emoticon.y = 0;
            emoticon.styleName('buttonImg'); // doesn't work...
            emoticon.setStyle("icon", "@Embed(source='smileys/"+smileys[x][0]+".png')"); // doesn't work
            emoticonsGroup.addChild(emoticon);
            positionX+= 24;
        }

我也尝试在循环中插入它,但它既不起作用:

        [Embed(source="smileys/"+smileys[x][0]+".png")] // fb doesn't like that
        var buttonIcon:Class;
        emoticon.setStyle("icon", buttonIcon);

1 个答案:

答案 0 :(得分:1)

您不能将变量放入嵌入中,因为它是编译器的指令,而不是运行时解析。现在,您可以

  • 创建与您拥有的笑脸一样多的变量,然后进行N次静态嵌入
  • 为按钮创建自己的皮肤,该按钮接受ImageLoader并动态加载按钮内的图像
  • 使用您的所有图片预加载swf并使用emoticon.setStyle("icon", getDefinitionByName(smileys[x][0])),其中smileys[x][0]是Flash库中笑脸的链接名称。