2010-12-08 52 views
0

J'ai un SWC qui inclut un certain nombre d'actifs pour mon projet. Dans ce SWC est également un fichier statique AS qui contient des déclarations de classe pour chaque image dans la bibliothèque.Est-il possible d'incorporer une classe d'actifs Flex dans une déclaration CSS?

Par exemple, le fichier SWF contient ces images:

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

et comprend un fichier AS qui est comme ceci:

[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; 

Je voudrais créer une déclaration CSS qui utilise ces deux images, mais je ne veux pas intégrer le chemin complet. Est-il possible de faire quelque chose comme cela?

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

Pour le moment, cette syntaxe particulière est invalide - Je reçois des erreurs de compilation pour le "." caractère dans la déclaration de style.

Y a-t-il une autre façon de le faire sans en intégrant le chemin (par exemple upIcon: Embed(source="/assets/foo/bar/img1.jpg")) dans le CSS?

+1

Il semble que vous souhaitiez incorporer une instance d'une classe. Je ne suis pas sûr que ce soit possible. Mais, jetez un oeil à ClassReference pour tirer parti d'une classe à l'intérieur d'une feuille de style. – JeffryHouser

+0

@Flextras, bon point - J'ai oublié ClassReference. Je reçois une erreur «définition Assets.IMG_1 n'a pas pu être trouvé». Je m'attends à ce qu'il ne soit pas en mesure de suivre la classe jusqu'au fichier AS. Je vais probablement m'en tenir à incorporer les icônes dans la déclaration de balise MXML plutôt que dans un CSS. – bedwyr

+0

@Flextras, si vous voulez poster ceci comme réponse, je l'accepterai. Je ne trouve rien d'autre pour y parvenir. – bedwyr

Répondre

3

Comme indiqué here afin de faire référence au membre de classe de classe en utilisant ClassReference dans CSS, vous devez utiliser "_" au lieu de "." dans le nom complet du champ que vous voulez utiliser.

Dans votre exemple,

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

oeuvres. Devrais-