Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 15h07   #1
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
Par défaut Duplication Dynamique De Vignette avec XML

Bonjour la compagnie



Une fois de plus je me dois de faire appel à votre savoir

Novice en actionScript et XML je me suis lancé sur une application simple afin de m'exercer sur ces deux technologies.

Voila, j'ai une photo de classe, et je souhaiterais afficher les informations d'un eleve lors du passage de la souris sur son visage.

Des informations tel que son prénom, son age, sa personalité, ses aptitudes scolaires..



Pour ce faire, j'ai d'un coté un fichier XML et d'un autre mon FLA;qui lui possède un clip conteneur nommé "fiche_id".
Dans "fiche_id" j'ai un clip nommé vignette1; qui lui contient 2 champs de textes dynamiques "vnom" et "vdescription"


(Ci-joint le .FLA )

Ne vous moquez pas
Mon Problème est que je souhaiterais tout simplement dupliquer ma vignette1 suivant le nombre d'aptitude recensé de l'élève en cours

et attribuer aux champs de texte dynamique des nouveaux clips vignette crée
les valeurs des noeuds appropriés.

Merci de m'avoir lu


Le code XML ce présente comme ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
 
<?xml version="1.0" encoding="UTF-8" ?>
<description>
 
	<eleve nom="ALEXANDRE" age="10" personalite="Une imagination débordante !">
			<aptitude nom="FRANCAIS "> Ces aptitudes en Francais</aptitude >
			<aptitude nom="MATH "> Ces aptitudes en Math</aptitude >
			<aptitude nom="HISTOIRE "> Ces aptitudes en Histoire </aptitude>
 
	</eleve>
 
	<eleve nom="VICTOR" age="11" personalite="Une imagination débordante !">
			<aptitude nom="FRANCAIS "> Ces aptitudes en Francais</aptitude >
			<aptitude nom="MATH "> Ces aptitudes en Math</aptitude >
			<aptitude nom="HISTOIRE "> Ces aptitudes en Histoire </aptitude>
	</eleve>
 
 
 
</description>

Traitement de mes données XML dans AS:

Code :
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
xml_data			=  new XML();
xml_data.ignoreWhite		=  true;
xml_data.load("xml/photo.xml");
xml_data.onLoad			= function()


	{
	

	
	//Fiches d'indentité de l'éleve
	
	var nombreEleve:Array			=  new Array(); //--* Contient le nombre total d'élèves recencés dans mon XML
	
	var nomEleve:Array			=  new Array(); //--* Contient le nom de tous les l'élèves recensés dans mon XML
	var ageEleve:Array			=  new Array(); //--* Contient l'age de tous les l'élèves recensés dans mon XML
	var personaliteEleve:Array		=  new Array(); //--* Contient la personalité de tous les l'élèves recensés dans mon XML
					
	var nbAptitude:Array			=  new Array(); //--* Contient le nombre total des aptitudes de chaque élèves
	
	nombreEleve				=  xml_data.firstChild.childNodes.length;
	
	
	for(i=0;i<nombreEleve;i++) 	//--* Boucle selon le nombre d'élèves recensé dans mon XML
	
	
			{
	
				nomEleve			=  xml_data.firstChild.childNodes[i].attributes.nom;
				ageEleve			=  xml_data.firstChild.childNodes[i].attributes.age;
				personaliteEleve		=  xml_data.firstChild.childNodes[i].attributes.personalite;
				
				nbAptitude			=  xml_data.firstChild.childNodes[i].childNodes.length;

				var ArrayContenair:Array 	=  new Array();
				
			for (n=0;n<nbAptitude;n++)		   //--* Boucle selon le nombre d'aptitude recencé par élèves dans mon XML
			
				{ 		
		
		//----1er Essai ---------------------------------------------------------------------
		
					//fiche_id.duplicateMovieClip(vignette1, "vignette1_"+n, n+1,{_x:+20,_y:20})
					//--*!* trace(fiche_id["vignette1_"+n]);
					
		//----2eme Essai ---------------------------------------------------------------------
		
					//ArrayContenair = fiche_id.duplicateMovieClip(vignette1, "vignette1_"+n, n+1);
					
					//trace(ArrayContenair);
					//--! Problème ! -- Actionscript me renvoi "_level0.undefined" pourtant en attribuant une valeur à mon Array il trouve les clips dupliqués
					
					//ArrayContenair._x+=300;
					
		//----3eme Essai ---------------------------------------------------------------------
		
					//_root.fiche_id.attachMovie("vignette1","vignette1_"+n,this.getNextHighestDepth);
					
					//trace(_root.fiche_id["vignette1_"+n]._height);		
					//--! Problème ! -- Actionscript me renvoi "la hauteur de mes clips attachés, mais impossible d'agir sur les clips afin de modifier leur positions
					
					//_root.fiche_id["vignette1_"+n]._y = _root.fiche_id.vignette1_0._y +(n*10);
					
		//---------------- ---------------------------------------------------------------------
					
				}
			
				nomEleve		=  xml_data.firstChild.childNodes[0].attributes.nom;
				ageEleve		=  xml_data.firstChild.childNodes[0].attributes.age;
				personaliteEleve	=  xml_data.firstChild.childNodes[0].attributes.personalite;
				
			
			
			trace(nbAptitude)
			
			
			
			}
			
		//Attribution des données récoltées dans les champs de textes dynamiques
	
				vignette1_0.vnom		=  nomEleve;
				vignette1_0.vdescription	=  "Age : "+ ageEleve + newline +"Personalité : " + personaliteEleve;
				
	
	
			
	}

//test des tableaux
/*
	_global.test_Tab = function(myArr:Array){
	for (a=0; a<myArr.length; a++) {
			trace("["+a+"] " + myArr[a])
			if(myArr[a][0]!=undefined){
				for (b=0; b<myArr[a].length; b++) {
					trace("["+a+"] ["+b+"] " + myArr[a][b])
					if(myArr[a][b][0]!=undefined){
						for (c=0; c<myArr[a][b].length; c++) {
							trace("["+a+"] ["+b+"] ["+c+"] " + myArr[a][b][c])
							if(myArr[a][b][c][0]!=undefined){
								for (d=0; d<myArr[a][b][c].length; d++) {
									trace("["+a+"] ["+b+"] ["+c+"] ["+d+"] " + myArr[a][b][c][d])
								}
							}
						}
					}
				}
			}
		}
}
*/
Fichiers attachés
Type de fichier : rar fiche_id_dynamique.rar (8,0 Ko, 0 affichages)
_onWakeUp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 23h06   #2
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 5
Points : 1
Points : 1
Etant donnée que personne ne semble avoir le temps de se focaliser sur mon problème ( ce que je comprend totalement ).

Pouvez vous svp juste me dire comment faire pour sortir une variable venant d'un onLoad?

Merci d'avance.
_onWakeUp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 14h52   #3
Membre habitué
 
Inscription : novembre 2004
Messages : 197
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 197
Points : 120
Points : 120
Citation:
Envoyé par _onWakeUp Voir le message

Pour ce faire, j'ai d'un coté un fichier XML et d'un autre mon FLA;qui lui possède un clip conteneur nommé "fiche_id".
Dans "fiche_id" j'ai un clip nommé vignette1; qui lui contient 2 champs de textes dynamiques "vnom" et "vdescription"
Pour le 2eme essai tu devrais essayer de remplacer
Code :
1
2
 
ArrayContenair = fiche_id.duplicateMovieClip(vignette1, "vignette1_"+n, n+1);
par
Code :
1
2
 
ArrayContenair = fiche_id.duplicateMovieClip(fiche_id.vignette1, "vignette1_"+n, n+1);
car vignette1 est dans fiche_id et non sur la racine.
ViveLesQuads est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h16.


 
 
 
 
Partenaires

Hébergement Web