Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
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 03/03/2008, 23h39   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 54
Points : 11
Points : 11
Par défaut portfolio en AS + xml

Bonsoir,

Je suis en train de réaliser un portfolio en flash.
Je souhaite afficher des vignettes sur 4 colonnes et x lignes.
Tant qui il y a des images ds mon fichier xml, il les charger ds flash.
Sur ma scène principale, j'ai un premier calque où j'ai un clip qui a comme occurrence "cadre". Et une autre image clé vide qui comporte le code ci-dessous. Le problème est que mes images ne se loade pas ds mes clips.

Merci pour votre aide.



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
 
 
tabimage = new Array(); 
XMLimage = new XML(); 
XMLimage.ignoreWhite = true; 
XMLimage.onLoad = function() { 
  //masquer le clip de base 
   _root.cadre._visible = 0; 
   //définir nombre d'image par ligne 
  colonne = 4; 
    //remplir le tableau avec toutes les balises comprises dans <images></images> du XML 
    tabimage = XMLimage.firstChild.childNodes; 
  //boucler autant de fois qu'il y a de balises photo  
    for (i=0; i<tabimage.length; i++) { 
      //dupliquer le clip 
     _root.cadre.duplicateMovieClip("cadre"+i, i*1+5000); 
        //on attache la photo au clip "glu" (celui qui a une position bizarre) 
      _root["cadre"+i].glu.loadMovie(XMLimage.firstChild.childNodes[i].childNodes[0].firstChild); 
     //attacher la description texte à la photo correspondante 
       _root["cadre"+i].textes = (XMLimage.firstChild.childNodes[i].childNodes[1].firstChild); 
     //positionner les images et leur cadre de la première ligne 
     if (i<colonne) { 
         _root["cadre"+i]._y = 50; 
           _root["cadre"+i]._x = 100*i+50; 
         //positionner les autres lignes par rapport a la précédente 
     } else { 
            _root["cadre"+i]._y = Number(_root["cadre"+(i-colonne)]._y)+100; 
            _root["cadre"+i]._x = _root["cadre"+(i-colonne)]._x; 
        } 
		_root["cadre"+i].onRollover=function(){
			this._alpha=60;
		}
 
		_root["cadre"+i].onRollover=function(){
			this._alpha=60;
		}
 
 
 
   } 
}; 
XMLimage.load("portfolio.xml"); 
stop();
Voici maintenant mon fichier xml :

Code :
1
2
3
4
5
6
7
8
9
10
 
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<images>
<photo url="lost1.jpg" caption="Sayid tries to explain to electronics theory to Kate." />
<photo url="lost2.jpg" caption="Locke tries again to explain to Jack why he's not crazy." />
<photo url="lost3.jpg" caption="Its confirmed, Jack's dad is dead as a doornail." />
<photo url="lost4.jpg" caption="Boone getting saved, but it won't do him any good." />
<photo url="lost5.jpg" caption="Jack and Hurley saving Claire from the wreckage." />
</images>
stef51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 07h47   #2
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,
si tu fais une trace de :
Code :
trace(XMLimage.firstChild.childNodes[i].childNodes[0].firstChild);
tu obtiens undefined!!
par contre si tu fais:
Code :
XMLimage.firstChild.childNodes[i].attributes.url
tu obtiens "lost1.jpg"

j'ai pas testé tout le reste du code mais ça doit commencer à arranger les choses...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 07h57   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 54
Points : 11
Points : 11
Par défaut Portfolio en AS + xml

Bonjour,

Merci pour ta réponse...effectivement en faisant ce que tu me dis ça commence à s'arranger...le trace me récupère bien le nom de mes images.
Mais je n'arrive toujours pas à les afficher ds mon clip
J'ai remplacé firstChild par attributes.url
Que me conseilles tu ?
Merci d'avance.
A+
stef51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 10h54   #4
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
apparemment le code dont on dispose est incomplet ?
chez moi :
est undefined...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 11h01   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 54
Points : 11
Points : 11
Par défaut Portfolio en AS + xml

Voici le code ci-dessous :
Pour info c'est un code que j'ai récupéré mais pas facile à adapter.
De plus je ne comprend pas cette ligne :

Code :
1
2
3
 
  //on attache la photo au clip "glu" (celui qui a une position bizarre) 
    _root["cadre"+i].glu.loadMovie(XMLimage.firstChild.childNodes[i].childNodes[0].firstChild);
Pouvez vous m'expliquer. Sinon sur ma scène principale, j'ai un clip avec comme propriété "cadre". Me faut il autre chose ?? (un clip "glu???")..mais à quoi sert il ?

Merci de vos réponses.


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
 
 
tabimage = new Array(); 
XMLimage = new XML(); 
XMLimage.ignoreWhite = true; 
XMLimage.onLoad = function() { 
  //masquer le clip de base 
   _root.cadre._visible = 100; 
   //définir nombre d'image par ligne 
  colonne = 4; 
    //remplir le tableau avec toutes les balises comprises dans <images></images> du XML 
    tabimage = XMLimage.firstChild.childNodes; 
 
  //boucler autant de fois qu'il y a de balises photo  
    for (i=0; i<tabimage.length; i++) { 
      //dupliquer le clip 
 
     _root.cadre.duplicateMovieClip("cadre"+i, i*1+5000); 
 
	// trace(XMLimage.firstChild.childNodes[i].childNodes[0].firstChild);
	trace (XMLimage.firstChild.childNodes[i].attributes.url);
        //on attache la photo au clip "glu" (celui qui a une position bizarre) 
      _root["cadre"+i].glu.loadMovie(XMLimage.firstChild.childNodes[i].childNodes[0].firstChild); 
     //attacher la description texte à la photo correspondante 
       _root["cadre"+i].textes = (XMLimage.firstChild.childNodes[i].childNodes[1].firstChild); 
     //positionner les images et leur cadre de la première ligne 
     if (i<colonne) { 
         _root["cadre"+i]._y = 50; 
           _root["cadre"+i]._x = 100*i+50; 
         //positionner les autres lignes par rapport a la précédente 
     } else { 
            _root["cadre"+i]._y = Number(_root["cadre"+(i-colonne)]._y)+100; 
            _root["cadre"+i]._x = _root["cadre"+(i-colonne)]._x; 
        } 
		_root["cadre"+i].onRollover=function(){
			this._alpha=60;
		}
 
		_root["cadre"+i].onRollover=function(){
			this._alpha=60;
		}
 
 
 
   } 
}; 
XMLimage.load("portfolio.xml"); 
stop();
stef51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 16h16   #6
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,

je ne sais pas à quoi peut servir le clip "glu" mais par contre tel que ton code se présente il faut créer un clip vide, le placer dans le clip "cadre" et le nommer dans le panneau propriété "glu" et dans ce cas ça marche... il charge les images lost1 lost2 etc. dans le clip "glu" lui même inclu dans "cadre1", "cadre2" etc.
A noter que tel que le code est écrit il faut placer tes images au même endroit que tout les autres fichiers, xml, swf etc.

voilà c'est tout...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 01h03   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 54
Points : 11
Points : 11
Par défaut Portfolio xml + AS

Bonsoir,

Merci pour ta réponse mais je ne parviens toujours pas à le faire fonctionner.
J'avais bien essayé de créer un clip vide nommé glu ds le clip cadre.
Mais bon rien n'y fait....
Merci encore
A+
ST
stef51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 09h34   #8
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,
Citation:
Envoyé par stef51
Merci pour ta réponse mais je ne parviens toujours pas à le faire fonctionner.
Sauf erreur de ma part, c'est normal que ça ne fonctionne pas car tu sembles être reparti du code erroné du départ avec la ligne
Code :
1
2
3
 
//on attache la photo au clip "glu" (celui qui a une position bizarre) 
    _root["cadre"+i].glu.loadMovie(XMLimage.firstChild.childNodes[i].childNodes[0].firstChild);
qui est fausse
Utilise à la place :
Code :
XMLimage.firstChild.childNodes[i].attributes.url
quand tu veux "débuguer" un truc comme ça, fait des trace() successifs et progressifs genre
Code :
1
2
3
4
5
6
 
trace(XMLimage.firstChild)
trace(XMLimage.firstChild.childNodes[i])
et ainsi de suite...
 
crdt
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2008, 17h43   #9
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 54
Points : 11
Points : 11
Par défaut portfolio en AS + xml

Salut,

C'est génial ça fonctionne !! mille mercis à toi
Bon l'étape suivante c'est mon loader pour chaque chargement d'images.
Puis un rollover (je vais faire un fading sur chaque image).
A+
ST
stef51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h22.


 
 
 
 
Partenaires

Hébergement Web