2009-06-15 3 views
1

Je dois faire une erreur simple (nouveau à Flex). Voici main.mxml:Doit être une erreur simple que je fais: Flex style CSS ne fonctionne pas dans un cas trivial

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
       backgroundColor="#ff0000"> 
    <mx:Style source="/testing123.css"/> 
    <mx:Canvas top="0" bottom="0" left="0" right="0" styleName="bg-lowlight" > 
    </mx:Canvas> 
</mx:Application> 

et voici testing123.css:

.bg-lowlight 

    { 
     backgroundColor: #003366; 
    } 

La toile rend bien en mode de conception (un bleu profond bien) mais quand je lance l'application (que ce soit dans le navigateur ou dans Flash Player) le cadre est rouge (la couleur de la balise Application). Si je spécifie la couleur pour le canevas directement, au lieu de passer par le styleName, cela fonctionne comme prévu (toile bleue à l'exécution). J'utilise FlexBuilder3 et je préfère mettre les couleurs dans un fichier .css que sur tous les éléments Flex!

Aidez-moi !!!

*** Description du problème supplémentaire ... n'a rien à voir avec un fichier .css externe. Même si je déclare les styles CSS dans le fichier main.xml, il semble toujours correct en mode Création et incorrect lors de son exécution. Je suis complètement coincé.

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#ff0000"> 
    <mx:Style > 
.bg-lowlight 
{ 
    backgroundColor: #003366; 
} 
    </mx:Style> 
    <mx:Canvas top="0" bottom="0" left="0" right="0" styleName="bg-lowlight" id="canvas1"> 
    </mx:Canvas> 
</mx:Application> 

Répondre

0

Alors ... avec l'aide de CookieOfFortune je traqué la racine du problème:

  • le nom de classe CSS (bg-lowlight) était invalide. Le '-' n'est pas autorisé

C'est ce qui se passe, je suppose, quand vous devinez ce qui est logique!

+0

pensez-vous vraiment que '-' n'est pas autorisé dans le nom de la classe css? –

2

Les changements d'Active Directory lorsque vous exécutez l'application, de sorte que "/testing123.css/" ne fait plus référence au fichier correct.

EDIT: Il est réellement vraiment ennuyeux.

+0

Je ne pouvais pas trouver la source = valeur correcte pour la balise mx: Style, donc j'ai regardé dans le dossier bin-debug ... et le fichier .css n'est pas là! J'ai supposé qu'il aurait été copié dans le dossier bin. Comment puis-je obtenir cela (ou inclure dans le fichier .swf)? –

+0

Merci pour le conseil ... mais j'ai modifié l'exemple original pour passer en interne au lieu de définitions .CSS externes, et le fichier semble toujours très bien en conception, mais mal quand il s'exécute. –

+0

exécute-t-il une version en cache? – CookieOfFortune

Questions connexes