Можно ли встроить класс ресурсов Flex в объявление CSS?

У меня есть SWC, который включает в себя ряд активов для моего проекта. В этом SWC также находится статический файл AS, который содержит объявления классов для каждого изображения в библиотеке.

Например, SWF содержит следующие изображения:

/assets/foo/bar/img1.jpg
/assets/foo/bar/img2.jpg

И он включает в себя файл AS, который выглядит следующим образом:

[Embed(source="/assets/foo/bar/img1.jpg")]
public static const IMG_1:Class;

[Embed(source="/assets/foo/bar/img2.jpg")]
public static const IMG_2:Class;

Я хотел бы создать объявление CSS, в котором используются эти два изображения, но я не хочу вставлять полный путь. Можно ли сделать что-то подобное этому?

<mx:Style>
    .mySampleStyle {
        upIcon:   Assets.IMG_1;
        downIcon: Assets.IMG_2;
    }
</mx:Style>

На данный момент этот конкретный синтаксис недействителен - я получаю ошибки компиляции для "." символ в объявлении стиля.

Есть ли другой способ сделать это без встраивания пути (например, upIcon: Embed(source="/assets/foo/bar/img1.jpg")) в CSS?


person bedwyr    schedule 08.12.2010    source источник
comment
Кажется, вы хотите встроить экземпляр класса. Я не уверен, возможно ли это. Но взгляните на ClassReference, чтобы использовать класс внутри таблицы стилей.   -  person JeffryHouser    schedule 08.12.2010
comment
@Flextras, хорошая мысль - я забыл о ClassReference. Я получаю определение Assets.IMG_1 не удалось найти ошибку. Я ожидаю, что он не сможет отследить класс до файла AS. Скорее всего, я просто буду встраивать значки в объявление тега MXML, а не в CSS.   -  person bedwyr    schedule 08.12.2010
comment
@Flextras, если вы хотите опубликовать это как ответ, я приму это. Я не могу найти ничего другого, чтобы достичь этого.   -  person bedwyr    schedule 09.12.2010


Ответы (1)


Как указано здесь, чтобы ссылаться на член класса типа Class, используя ClassReference в CSS, вы должны использовать "_" вместо "." в полном имени поля, которое вы хотите использовать.

В вашем примере

<mx:Style>
.mySampleStyle {
    upIcon:   ClassReference("Assets_IMG_1");
    downIcon: ClassReference("Assets_IMG_2");
}

should works.

person filou77    schedule 10.04.2011