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

Flash Discussion :

[FLASH MX2004] Appliquer CSS sur champs crées dynamiquement


Sujet :

Flash

  1. #1
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut [FLASH MX2004] Appliquer CSS sur champs crées dynamiquement
    Bonjour,
    Je cree des champs de texte dynamiquement avec une boucle et un chargement de fichier XML.
    Sur ces champs je veux leur appliquer une CSS dont les tags correspondent bien aux noeuds XML.
    Le probleme est pour cibler les champs du XML car il faut appliquer une CSS avant même de charger le XML, et donc avant de créer les champs
    Je vous mets le code :
    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
     
    var styleCSS = new TextField.StyleSheet();
    	styleCSS.load("home.css");
    	styleCSS.onLoad=function(etat){
    		if(etat){
    			loader[sNom].styleSheet =styleCSS;/***** c'est sur ce ciblage que cela pose probleme*****/
    var xmlFile = new XML();
    	xmlFile.load("home.xml");
    	xmlFile.ignoreWhite = true;
    	xmlFile.onLoad = function(bOk_:Boolean) {
    	if(bOk_) {
    		createEmptyMovieClip("loader",_root);
     
    			for(var i:Number=0; i<noms.length; i++) 
    				{ 
       				var sNom:String = noms[i] 
    				loader.createTextField(sNom,i,coordX[i],coordY[i],largeur[i],hauteur[i]); 
    				loader[sNom].html=true;
    				loader[sNom].autoSize="left";
    				loader[sNom].border=true;
    				loader[sNom].borderColor =0x000000;
    				loader[sNom].wordWrap=true; 
    				loader[sNom].multiline=true; 
    				loader[sNom].htmlText = xmlFile.firstChild.childNodes[0].childNodes[i].firstChild;
    				} 
    			} else {
    		trace("Pb lors du chargement du XML");
    			}
    		}
    	}
    }
    Merci de votre aide ;-)

  2. #2
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Personne ne sait ?

  3. #3
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    pourquoi tu fais pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    loader[sNom].styleSheet = styleCSS; 
    loader[sNom].htmlText = xmlFile.firstChild.childNodes[0].childNodes[i].firstChild;
    :
    Pb de ciblage ?

  4. #4
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Comme ca tu veux dire ? par ce que cela ne fonctionne pas :
    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
     
    var styleCSS = new TextField.StyleSheet(); 
       styleCSS.load("home.css"); 
       styleCSS.onLoad=function(etat){ 
          if(etat){ 
    var xmlFile = new XML();
    	xmlFile.load("home.xml");
    	xmlFile.ignoreWhite = true;
    	xmlFile.onLoad = function(bOk_:Boolean) {
    	if(bOk_) {
     
    			for(var i:Number=0; i<noms.length; i++) 
    				{ 
       				var sNom:String = noms[i] 
    				_root.all_pages.p1.createTextField(sNom,i,coordX[i],coordY[i],largeur[i],hauteur[i]); 
    				// je multiplie par i pour avoir une valeur differente a chaque fois pour le depart
    				ouvertureMenu = new Tween(_root.all_pages.p1[sNom], "_x", Elastic.easeOut, -300*i, coordX[i], 0.5,true);
    				_root.all_pages.p1[sNom]._alpha=5;
    				_root.all_pages.p1[sNom].html=true;
    				_root.all_pages.p1[sNom].autoSize="left";
    				_root.all_pages.p1[sNom].border=true;
    				_root.all_pages.p1[sNom].borderColor =0x000000;
    				_root.all_pages.p1[sNom].wordWrap=true; 
    				_root.all_pages.p1[sNom].multiline=true; 
    				_root.all_pages.p1[sNom].styleSheet = styleCSS; 
    				_root.all_pages.p1[sNom].htmlText = xmlFile.firstChild.childNodes[0].childNodes[i].firstChild;
    				} 
    			} else {
    		trace("Pb lors du chargement du XML");
    			}
    		}
    	  }
       }

  5. #5
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Oui c'est bien ce que je voulais dire.
    Tu devrais faire des fonctions, car des onLoad dans des onLoad ... c'est dur après pour savoir si on cible bien les bons objets

    essaie un truc comme ça, pour voir
    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
    37
    38
    39
    40
    import  TextField.StyleSheet()
     
    var styleCSS:StyleSheet = new StyleSheet();
    styleCSS.load("home.css");
    styleCSS.onLoad=cssLoaded;
     
    var xmlFile:XML = new XML();
    xmlFile.ignoreWhite = true;
     
    function cssLoaded(bOk_:Boolean){
          if(bOk_){
               xmlFile.load("home.xml");
               xmlFile.onLoad = fXmlLoaded; 
          } else {
               trace("Pb lors du chargement du css");
          }
    }
     
    function xmlLoaded(bOk_:Boolean) {
       if(bOk_) {
             for(var i:Number=0; i<noms.length; i++)
                {
                var sNom:String = noms[i]
                _root.all_pages.p1.createTextField(sNom,i,coordX[i],coordY[i],largeur[i],hauteur[i]);
                // je multiplie par i pour avoir une valeur differente a chaque fois pour le depart
                ouvertureMenu = new Tween(_root.all_pages.p1[sNom], "_x", Elastic.easeOut, -300*i, coordX[i], 0.5,true);
                _root.all_pages.p1[sNom]._alpha=5;
                _root.all_pages.p1[sNom].html=true;
                _root.all_pages.p1[sNom].autoSize="left";
                _root.all_pages.p1[sNom].border=true;
                _root.all_pages.p1[sNom].borderColor =0x000000;
                _root.all_pages.p1[sNom].wordWrap=true;
                _root.all_pages.p1[sNom].multiline=true;
                _root.all_pages.p1[sNom].styleSheet = styleCSS;
                _root.all_pages.p1[sNom].htmlText = xmlFile.firstChild.childNodes[0].childNodes[i].firstChild;
                }
       } else {
          trace("Pb lors du chargement du XML");
       }
    }

  6. #6
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    non cela me donne une erreur de syntaxe.
    Ce que je comprends pas c'est qu'il faut bien charger la CSS en premier ?
    Et lui dire a quel champs elle doit s'appliquer,non ?
    Là les champs ne se créent qu'apres le chargement du XML, et ils ont des noms dynamiques générés pas une boucle.
    Donc impossible de dire au debut a quels champ la regle s'appliques, tu vois ?

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/11/2005, 11h32
  2. Réponses: 3
    Dernier message: 25/02/2005, 20h46
  3. [FLASH MX2004 PRO] DragAndDrop sur swf loadé
    Par nikita78 dans le forum Flash
    Réponses: 5
    Dernier message: 23/10/2004, 02h23
  4. Réponses: 8
    Dernier message: 17/10/2004, 15h34
  5. [FLASH MX2004] Rotation d'un bouton en dynamique?
    Par clad523 dans le forum Flash
    Réponses: 3
    Dernier message: 09/08/2004, 12h30

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