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 :

Externaliser librairies de skins


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 Externaliser librairies de skins
    Bonjour,

    je cherche à externaliser mes fichiers de skins dans des projets de type "projet de bibliothèques Flex" puis à les importer dans l'appli principale en tant que RSLs.

    C'est fonctionnel sauf que les RSLs étant toutes chargées au runtime, je peux avoir n RSLs chargées qui ne me servent pas

    En effet, je souhaite que l'utilisateur via une liste déroulante par exemple puisse changer dynamiquement le skin. Ce skin devra donc être chargé et appliqué lors d'un changement de choix dans cette liste déroulante et pas avant.

    Je suppose donc que les RSLs ne sont pas un choix approprié pour ce genre de manipulations. Cependant, je ne vois pas non plus comment puis je m'en tirer avec le SWFLoader ou les modules non plus

    Auriez vous une idée ?

    Merci

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Salut,

    je ne suis pas certains d'avoir bien compris ... mais tu souhaites charger/décharger des skins , c'est bien ca ? pourquoi les modules ne correspondent pas à ton besoin ?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    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
    Hello,

    tu as raison parfois je cherche midi à 14 heures

    J'ai simplement utilisé un loader. Voici ce que j'ai fait concrètement :

    1. Création de 2 projets de bibliothèques Flex dans lesquels j'ai crée dans l'un une classe skins.Skin1 et dans l'autre une classe skins.Skin2
    2. Extraction des 2 SWCs générés du fichier library.swf et renommage en library_skin1.swf et library_skin2.swf (ce sont donc mes fichiers de skins à proprement parlé). Mise dans un répertoire commun des 2 fichiers.
    3. ajout de la directive -use-network=false au compilateur pour éviter les erreurs de chargement 2048 (test en local)


    Mon MXML est celui là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <s:DropDownList dataProvider="{new ArrayList([{label:'skin1'}, {label:'skin2'}])}" labelField="label" selectedIndex="-1" change="dropdownlist1_changeHandler(event)"/>
    <s:Button id="test" label="test"/>
    Mes fonctions de test sont celles-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    import flash.utils.getDefinitionByName;
     
    			import mx.collections.ArrayList;
     
    			import spark.events.IndexChangeEvent;
    			import spark.skins.SparkButtonSkin;
     
    			private var _skin:String;
     
     
    			protected function dropdownlist1_changeHandler(event:IndexChangeEvent):void
    			{						
    				var ddl:DropDownList = event.currentTarget as DropDownList;		
    				_skin = ddl.selectedItem.label;
     
    				var ldrContext:LoaderContext = new LoaderContext(false,	ApplicationDomain.currentDomain);				
    				var l:Loader = new Loader();
     
    				l.contentLoaderInfo.addEventListener(Event.OPEN, onOpen);
    				l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    				l.load(new URLRequest("E:/workspaces/flex/sim_test/Skin1/bin/library_"+_skin+".swf"), ldrContext);				
    			}
     
    			protected function onOpen(event:Event):void 
    			{
    				trace('open');
    			}
     
    			protected function onComplete(event:Event):void
    			{		
    				var fullyQualifiedName:String = "skins." + _skin.charAt(0).toUpperCase() + _skin.substr(1); 
     
    				var buttonSkin:Class = getDefinitionByName(fullyQualifiedName) as Class;
    				test.setStyle("skinClass", buttonSkin);
    			}
    Ca marche correctement. Bien sur tous les tests de vérification d'existence du fichier de skin, de vérification s'il est déjà chargé en mémoire etc...ne sont pas là, c'est juste un test.

    D'arpès toi, quels pourraient être les avantages d'utiliser les modules par rapport aux loaders ? Gestion plus fine des ressources ?

    Merci à toi

Discussions similaires

  1. [Flex4] Externalisation de skin et images
    Par Madfrix dans le forum Flex
    Réponses: 2
    Dernier message: 30/04/2012, 11h35
  2. Je cherche une bonne librairie de skins
    Par PDelph7 dans le forum Delphi
    Réponses: 2
    Dernier message: 04/01/2007, 09h47
  3. Réponses: 5
    Dernier message: 09/12/2002, 22h23
  4. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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