IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Choisir dynamiquement un skin au lancement de l'application [Flex4]


Sujet :

Flex

  1. #1
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut Choisir dynamiquement un skin au lancement de l'application
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <fx:Style source="+maVariable+" />
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <fx:Style source="{maVariable}" />
    mais j'obtiens des erreurs telles que :

    Expressions de liaison de données non prises en charge avec des attributs traités au moment de la compilation
    Bref, cette balise veut du "dur" pas des variables. J'ai donc ensuite testé via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    styleManager.loadStyleDeclarations2(...);
    plugué sur les événements initialize, preinitialize etc mais sans résultat, j'obtiens toujours des erreurs comme :

    Error: Required skin part XXX cannot be found.
    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.

    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

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Ok je m'en suis sorti...

    Le problème était que le SWF de skins ne se chargeait pas assez rapidement et que donc Flex cherchait à appliquer des skins qu'il ne trouvait pas aux composants au lancement de l'appli. J'ai enlevé tous mes composants (ils nécessitent tous un skin perso qui n'est donc pas présent par défaut dans spark) et je les ai encapsulé dans un vulgaire conteneur que je n'ai pas inclu directement dans mon application. Ensuite sur l’événement FlexEvent.PREINITIALIZE, j'ai chargé via styleManager.loadStyleDeclarations2() mon SWF de skins qui du coup se charge bien puisque l’application n'a aucun skin à appliquer directement (du moins aucun skin "perso" juste le skin par défaut de l'application spark). Une fois l'événement Event.COMPLETE du styleManager lancé, j'ajoute via as3 mon conteneur via addElement à mon application et tous les skins peuvent maintenant se charger puisqu'ils ont été chargés dans mon SWF de skins. Désolé si je suis pas clair^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Comment choisir mon fichier .ini au lancement de mon application ?
    Par dumas.blr dans le forum VBA Access
    Réponses: 20
    Dernier message: 03/02/2013, 21h05
  2. comment choisir dynamiquement un fichier *.js externe à une feuille html
    Par j.p.mignot dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/01/2008, 08h51
  3. [Plugin][MyEclipse]Lancement d'une application J2EE
    Par ujoodha dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2005, 15h48
  4. Détecter le lancement d'une application
    Par Neilos dans le forum Windows
    Réponses: 8
    Dernier message: 22/11/2004, 12h32
  5. Lancement d'une application en local (!)
    Par Fifoun dans le forum MFC
    Réponses: 5
    Dernier message: 12/06/2004, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo