Вставить изображение с помощью строковой переменной, которая содержит имя файла - PullRequest
3 голосов
/ 27 июня 2010

Я пытаюсь встроить изображения в mx: tree:

<mx:Tree labelField="name" id="tree" 
    folderOpenIcon="@Embed(source='assets/images/test.png')"
    folderClosedIcon="@Embed(source='assets/images/test.png')"
    defaultLeafIcon="@Embed(source='assets/images/test.png')">
</mx:Tree>

Это работает нормально, но я буду вставлять изображения с помощью строковой переменной.

У меня есть переменная и функция

[Bindable]
private var folderIcon:String;

public function setIcon(icon:String):void {
    folderIcon = icon; // "assets/images/test.png"
}

Но как можно заменить эти строки

folderOpenIcon="@Embed(source='assets/images/test.png')"
folderClosedIcon="@Embed(source='assets/images/test.png')"
defaultLeafIcon="@Embed(source='assets/images/test.png')"

с

folderIcon

? Кто-нибудь знает это? Или я должен / могу использовать таблицы стилей?

Большое спасибо заранее и наилучшими пожеланиями.

Ответы [ 3 ]

2 голосов
/ 27 июня 2010

Я не совсем уверен, зачем тебе это нужно.В любом случае, если вы пытаетесь встроить изображения в AS3, вы должны сделать следующее

1 голос
/ 27 июня 2010

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

Вот некоторая информация о встраивании ресурсов, таких как PNG в Flex:

http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html

    [Embed(source="assets/images/test.png")]
    [Bindable]
    public var folderIcon:Class;

И вы можете использовать его так:

folderOpenIcon="{folderIcon}"
folderClosedIcon="{folderIcon}"
defaultLeafIcon="{folderIcon}"
0 голосов
/ 27 июня 2010

Я могу сделать это с помощью таблиц стилей.Вы можете вставить

styleName="myButton"

и таблицы стилей via:

<mx:Style>
    .projectButton {
        icon: Embed("assets/images/test.png");
    }
</mx:Style>

(также возможно использование внешней таблицы стилей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...