Попытка сгенерировать кнопки с помощью цикла, но свойство Icon вызывает проблемы - PullRequest
1 голос
/ 28 марта 2011

Я пытаюсь сгенерировать кнопку с циклом массива, но не могу заставить стиль иконок и имя стилена работать :(

        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 Ответ

1 голос
/ 28 марта 2011

Вы не можете помещать переменные во встраивание, так как это инструкция для компилятора, а не разрешение времени выполнения.Теперь вы можете

  • создать столько переменных, сколько у вас есть смайликов, а затем иметь N статических вложений
  • создать свой собственный скин для кнопки, которая принимает Image или Loader и динамически загружайте изображение внутри кнопки
  • , предварительно загрузите SWF со всеми вашими изображениями и используйте emoticon.setStyle("icon", getDefinitionByName(smileys[x][0])), где smileys[x][0] - это имя связывания смайлика в библиотеке Flash.
...