Bonjour,
j'ai une application Java JSF qui lance une application Flex en lui passant divers informations via des flashvars parmi lesquelles le nom d'un fichier SWF qui représente le SWF à charger pour les skins. En gros, cela peut être "skin1.swf", "skin2.swf" etc...
Je récupère bien ce nom de fichier skin à charger dans mon appli, pas de soucis de ce côté là.
Maintenant, je cherche donc à charger dynamiquement ce skin au lancement de l'appli. J'ai donc testé de paramétrer la balise "style" de la sorte :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <fx:Style source="+maVariable+" />
mais j'obtiens des erreurs telles que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <fx:Style source="{maVariable}" />
Bref, cette balise veut du "dur" pas des variables. J'ai donc ensuite testé via :Expressions de liaison de données non prises en charge avec des attributs traités au moment de la compilation
plugué sur les événements initialize, preinitialize etc mais sans résultat, j'obtiens toujours des erreurs comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 styleManager.loadStyleDeclarations2(...);
En fait je pense que le chargement du fichier SWF étant asynchrone, Flex poursuit le cycle de vie de l'application et cherche donc les skins des composants avant que le SWF de skins soit chargé. J'ai essayé d'empêcher la propagation de certains événements sans résultats non plus. Et pour finir (même si c'est ce par quoi j'ai commencé), j'ai essayé de charger ce fichier SWF via le preloader de l'appli, j'ai réussi mais j'ai eu d'autres erreurs ensuite, bref la galère.Error: Required skin part XXX cannot be found.
Je n'ai jamais vu des exemples sur internet ou la fonction loadStyleDeclarations2 est utilisée pour charger le "premier" skin, à chaque fois elle est utilisée pour remplacer partiellement ou complétement un skin existant et donc préalablement chargé. Bien sur, je pourrais utiliser un skin par défaut et le supplanter ensuite mais ce serait aberrant de faire cela sans compter la perte de temps du au chargement de 2 skins distincts...
Je cherche finalement à faire quelque chose de simple : charger dynamiquement un skin pour mon application complète...mais comment faire ?
Merci pour vos idées
Partager