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

ActionScript 1 & ActionScript 2 Discussion :

Problème de chargement d'un Clip dynamique dans un ScrollPane


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 22
    Points
    22
    Par défaut Problème de chargement d'un Clip dynamique dans un ScrollPane
    Bonjour,

    Je dois remplir un clip dynamiquement (création de champs texte dynamiques qui sont remplies par le biais d'un XML) et ce clip doit être dans un ScrollPane.

    Pour la lecture du xml et le remplissage du clip, aucun soucis. Par contre je n'arrive pas à le charger comme il faut dans le ScrollPane, quelque chose m'échappe. Les scrollbarres ne sont pas visible.

    ci-dessous le code actionscript

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
     
    _root.attachMovie('tableau-bas','tab_benef',_root.clip_tab.getNextHighestDepth() );
    _root.clip_tab.contentPath = "empty";
    _root.clip_tab.setSize(200, 300);
     
    //parcours de l'arbo xml
    Fichier_XML = new XML(); 
    Fichier_XML.ignoreWhite = true; 
    Fichier_XML.load("benefits.xml"); 
    Fichier_XML.onLoad = function(Reussite) 
    { 
    	if (Reussite) 
    	{ 
    		var couleur1:Number = 0x003466;
    		var couleur2:Number = 0x008011;
    		var couleur3:Number = 0xFE9900;
    		var couleur4:Number = 0x800080;
    		var couleur5:Number = 0x808080;
    		var couleur6:Number = 0x820000;
    		var couleut:Number;
    		//créer un format de texte
    		var format1_fmt:TextFormat = new TextFormat();
    		format1_fmt.font = "Arial";
    		format1_fmt.size= 11;
    		format1_fmt.color = couleur1;
    		format1_fmt.bold = true;
     
    		var format2_fmt:TextFormat = new TextFormat();
    		format2_fmt.font = "Arial";
    		format2_fmt.size= 10;
     
    		x = Fichier_XML.firstChild; 
    		var Voir_xml:String = "";
    		var Y:Number = 359;
    		var X:Number = 430;
    		var prof:Number = 0;
    		var MyLine:String = "";
    		var Multi:Boolean = false;
    		for(i = 0; x.childNodes[i] != undefined; i++) 
    		{ //parcours les benefices
    			switch (i)
    			{
    				case 0:
    				couleur = couleur1;
    				break;
    				case 1:
    				couleur = couleur2;
    				break;
    				case 2:
    				couleur = couleur3;
    				break;
    				case 3:
    				couleur = couleur4;
    				break;
    				case 4:
    				couleur = couleur5;
    				break;
    				case 5:
    				couleur = couleur6;
    				break;
    			}
    			format1_fmt.color = couleur;
    			//tracer une ligne
    			MyLine = "ligne"+i;
    			_root.tab_benef.createEmptyMovieClip(MyLine,prof); //nom,profondeur
    			_root.tab_benef[MyLine].lineStyle (2, couleur, 100); //taille, couleur, transparence
    			_root.tab_benef[MyLine].moveTo( 0,Y); //x_origine, y_origine
    			_root.tab_benef[MyLine].lineTo( 883.9, Y); //x_desti,y_desti
     
    			Y = Y + 5;
    			prof++;
    			trace(_root.clip_tab.contentPath);
    			//générer un champs texte
    			var myTF="CT" + i; //CT pour "ChampTexte", un chiffre pour différencier.
    			_root.tab_benef.createTextField(myTF,prof,0,Y,70,16); //nom,profondeur,x,y,L,H
     
    			_root.tab_benef[myTF].border=false;
    			_root.tab_benef[myTF].text = x.childNodes[i].attributes.nom;
    			_root.tab_benef[myTF].setTextFormat(0, _root.tab_benef[myTF].text.length, format1_fmt);//debut, fin, nom du format
     
    			prof++;
     
    			for(j=0;x.childNodes[i].childNodes[j] != undefined; j++) 
    			{ //parcours les champs
    				//générer un champs texte
    				var myTF="CT" + i + j; //CT pour "ChampTexte", un chiffre pour différencier.
     
    				if(x.childNodes[i].childNodes[j].attributes.nom.length > 60)
    				{
    					_root.tab_benef.createTextField(myTF,prof,92,Y,308,32); //nom,profondeur,x,y,L,H
    					_root.tab_benef[myTF].border=false;
    					_root.tab_benef[myTF].text = x.childNodes[i].childNodes[j].attributes.nom;
     
    					_root.tab_benef[myTF].multiline = true;
    					_root.tab_benef[myTF].wordWrap = true;
    					Multi = true;
    				}
    				else
    				{
    					_root.tab_benef.createTextField(myTF,prof,92,Y,308,16); //nom,profondeur,x,y,L,H
    					_root.tab_benef[myTF].border=false;
    					_root.tab_benef[myTF].text = x.childNodes[i].childNodes[j].attributes.nom;
    					Multi = false;
    				}
    				_root.tab_benef[myTF].setTextFormat(0, _root.tab_benef[myTF].text.length, format2_fmt);//debut, fin, nom du format
    				prof++;
     
    				for(k=0;x.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue != undefined; k++) 
    				{ //parcours les valeurs
     
    					var myTF="CT" + i + j + k; //CT pour "ChampTexte", un chiffre pour différencier.
    					if(x.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue.length > 13)
    					{
    						_root.tab_benef.createTextField(myTF,prof,X,Y,80,32); //nom,profondeur,x,y,L,H
    						_root.tab_benef[myTF].border=false;
    						_root.tab_benef[myTF].text = x.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue;
    						_root.tab_benef[myTF].multiline = true;
    						_root.tab_benef[myTF].wordWrap = true;
    						Multi = true;
    					}
    					else
    					{
    						_root.tab_benef.createTextField(myTF,prof,X,Y,90,16); //nom,profondeur,x,y,L,H
    						_root.tab_benef[myTF].border=false;
    						_root.tab_benef[myTF].text = x.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue;
    						if(Multi)
    						{
    							Multi = true;
    						}
    						else
    						{
    							Multi = false;
    						}
    					}
     
    						_root.tab_benef[myTF].setTextFormat(0, _root.tab_benef[myTF].text.length, format2_fmt);//debut, fin, nom du format
    						prof++;
    						X = X + 97;
     
    				}
     
    				if(Multi)
    				{
    					Y = Y + 37;
    				}
    				else
    				{
    					Y = Y + 21;
    				}
    				Multi = false;
    				X = 430;
    			}
    		} 
     
    	_root.clip_tab.attachMovie("tab_benef","benefits",prof++);
     
    	_root.clip_tab.invalidate();
    	trace(_root.clip_tab);
    	} 
    	else 
    	{
    		Voir_xml = "Erreur lors du chargement du fichier XML"; 
    	}
    };

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    J'essaie de procéder autrement mais sans plus de succès.

    le tableau qui est créé par le code indiqué ci-dessus a été déplacé dans un autre fichier.fla et je veux désormais charger le .swf qui en résulte dans mon ScrollPane de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_benefits.contentPath = "benfits_table.swf";
    le problème est que mon tableau se charge par dessus la scène et non dans le ScrollPane.

    Auriez vous une idée de ce que j'oublie ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    un peu de progrès, désormais le .swf s'ouvre aux bonnes coordonnées mais le ScrollPane n'est toujours pas actif. Quand je debug, la structure de l'animation est bonne et tout le monde semble à sa place.

    mes modifs :
    - création du scrollpane
    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
    _root.createClassObject(mx.containers.ScrollPane, "my_sp", _root.getNextHighestDepth());
    my_sp.setSize(864,329);
    my_sp._x = 16.7;
    my_sp._y = 358;
    my_sp.hScrollPolicy = "on";
    my_sp.vScrollPolicy = "on";
     
    // Création de l'objet écouteur pour le chargement terminé.
    var completeListener:Object = new Object();
    completeListener.complete = function(evt_obj:Object) {
     trace(evt_obj.target.contentPath + " has completed loading.");
    // my_sp.setSize(864,329);
     //my_sp.container_mc.setSize(864,329);
     my_sp.refreshPane();
     
    };
    // Ajout de l'écouteur.
    my_sp.addEventListener("complete", completeListener);
     
     
    // Creates a child movie clip inside of "my_mc".
    // This is the movie clip the image will replace.
    my_sp.createEmptyMovieClip("container_mc",my_sp.getNextHighestDepth());
    my_sp.container_mc.setSize(864,329);
     
    my_sp.container_mc.loadMovie("benfits_table.swf");
    et modification du .swf qui est appelé, le _root a été remplacé par _parent
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    reference = _parent.container_mc.createEmptyMovieClip("monclip",1);
    trace("reference : " + reference);
    //parcours de l'arbo xml
    Fichier_XML = new XML(); 
    Fichier_XML.ignoreWhite = true; 
    Fichier_XML.load("benefits.xml"); 
    Fichier_XML.onLoad = function(Reussite) 
    { 
    	if (Reussite) 
    	{ 
    		var couleur1:Number = 0x003466;
    		var couleur2:Number = 0x008011;
    		var couleur3:Number = 0xFE9900;
    		var couleur4:Number = 0x800080;
    		var couleur5:Number = 0x808080;
    		var couleur6:Number = 0x820000;
    		var couleut:Number;
    		//créer un format de texte
    		var format1_fmt:TextFormat = new TextFormat();
    		format1_fmt.font = "Arial";
    		format1_fmt.size= 11;
    		format1_fmt.color = couleur1;
    		format1_fmt.bold = true;
     
    		var format2_fmt:TextFormat = new TextFormat();
    		format2_fmt.font = "Arial";
    		format2_fmt.size= 10;
     
    		x = Fichier_XML.firstChild; 
    		var Voir_xml:String = "";
    		var Y:Number = 10;
    		var X:Number = 430;
    		var prof:Number = 2;
    		var MyLine:String = "";
    		var Multi:Boolean = false;
    		for(i = 0; x.childNodes[i] != undefined; i++) 
    		{ //parcours les benefices
    			switch (i)
    			{
    				case 0:
    				couleur = couleur1;
    				break;
    				case 1:
    				couleur = couleur2;
    				break;
    				case 2:
    				couleur = couleur3;
    				break;
    				case 3:
    				couleur = couleur4;
    				break;
    				case 4:
    				couleur = couleur5;
    				break;
    				case 5:
    				couleur = couleur6;
    				break;
    			}
    			format1_fmt.color = couleur;
    			//tracer une ligne
    			MyLine = "ligne"+i;
    			trace(reference);
    			reference.createEmptyMovieClip(MyLine,reference.getNextHighestDepth()); //nom,profondeur
    			reference[MyLine].lineStyle (2, couleur, 100); //taille, couleur, transparence
    			reference[MyLine].moveTo( 0,Y); //x_origine, y_origine
    			reference[MyLine].lineTo( 883.9, Y); //x_desti,y_desti
    			trace("parent: " +_parent);
    			Y = Y + 5;
    			prof++;
     
    			//générer un champs texte
    			var myTF="CT" + i; //CT pour "ChampTexte", un chiffre pour différencier.
    			reference.createTextField(myTF,reference.getNextHighestDepth(),0,Y,70,16); //nom,profondeur,x,y,L,H
    			reference[myTF].border=false;
    			reference[myTF].text = x.childNodes[i].attributes.nom;
    			reference[myTF].setTextFormat(0, reference[myTF].text.length, format1_fmt);//debut, fin, nom du format
     
    			prof++;
     
    			for(j=0;x.childNodes[i].childNodes[j] != undefined; j++) 
    			{ //parcours les champs
    				//générer un champs texte
    				var myTF="CT" + i + j; //CT pour "ChampTexte", un chiffre pour différencier.
     
    				if(x.childNodes[i].childNodes[j].attributes.nom.length > 60)
    				{
    					reference.createTextField(myTF,reference.getNextHighestDepth(),92,Y,308,32); //nom,profondeur,x,y,L,H
    					reference[myTF].border=false;
    					reference[myTF].text = x.childNodes[i].childNodes[j].attributes.nom;
     
    					reference[myTF].multiline = true;
    					reference[myTF].wordWrap = true;
    					Multi = true;
    				}
    ...

Discussions similaires

  1. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32
  2. Réponses: 2
    Dernier message: 06/03/2007, 11h00
  3. Réponses: 2
    Dernier message: 05/03/2007, 14h21
  4. Creér des Clip dynamiquement dans la scène
    Par jpboogie dans le forum Flash
    Réponses: 2
    Dernier message: 04/10/2006, 16h47
  5. Réponses: 10
    Dernier message: 29/10/2004, 18h45

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