Flash et xml

Résolu
cs_recco Messages postés 14 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 1 juin 2007 - 31 mai 2007 à 16:08
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 - 1 juin 2007 à 13:10
Bonjour. J'ai réussi à installer une présentation d'images avec miniatures via un fichier xml dans lequel  flash va chercher les images. Voici le code de ce fichier xml :

MovieClip.prototype.loadGalerieFromXml = function(file,zoneTaille,zoneEspace,affichage,nombre,clipCible){
 
this.galerieXml = newXML();
 
racine=this;
 
this.galerieXml.ignoreWhite = true;
 
this.galerieXml.onLoad = function(){
 
racine.zoneTaille = zoneTaille;
 
racine.zoneEspace = zoneEspace;
 
racine.picsLoaded = true;
 
racine.affichage = affichage;
 
racine["nb"+affichage] = nombre;
 
racine.galeriev = this.firstChild.childNodes;
 
racine.lon = racine.galeriev.length;
 
for(var i = 0; i<racine.lon; i++){
 
var nom = racine.galeriev[i].attributes.small;
 
racine.createEmptyMovieClip("bitmap_mc"+i, i+10);
 
racine["bitmap_mc"+i].loadMovie(nom);
 
}
 
racine.onEnterFrame=function(){
 
this.picsLoaded=true;
 
for(var i = 0; i<this.lon; i++){
 
racine["bitmap_mc"+i]._visible=false;
 
if(this["bitmap_mc"+i].getBytesLoaded() !=this["bitmap_mc"+i].getBytesTotal()||this["bitmap_mc"+i].getBytesLoaded()==0)
 
{this.picsLoaded=false;break;}}
 
if(this.picsLoaded==true){
 
deletethis.onEnterFrame;
 
this.a = 0;
 
this.b = 0;
 
for(var i=0; i<this.lon; i++){
 
racine["bitmap_mc"+i]._visible=true;
 
if(this.a == this["nb"+this.affichage]){
 
this.a = 0;
 
this.b++;
 
}
 
this["bitmap_mc"+i]._x =(this.affichage=="Colonnes"? this.a : this.b)*(this.zoneTaille+this.zoneEspace);
 
this["bitmap_mc"+i]._y =(this.affichage=="Colonnes"? this.b : this.a)*(this.zoneTaille+this.zoneEspace);
 
this.a++;
 
this["bitmap_mc"+i].big=this.galeriev[i].attributes.big;
 
}
 
for(var i = 0; i<this.lon; i++){
 

 
this.facteur=Math.max(this["bitmap_mc"+i]._width,this["bitmap_mc"+i]._height)/this.zoneTaille;
 
this["bitmap_mc"+i]._xscale = this["bitmap_mc"+i]._yscale /=this.facteur;
 
this["bitmap_mc"+i].onRelease= function(){ clipCible.loadFile(this.big); }
 
}
 
}
 
}
 
}
 
this.galerieXml.load(file);
 
}

Voici le code dans mon fla :

#include "loadGalerie.txt"

_root.createEmptyMovieClip("galerie",1);
_root.createEmptyMovieClip("bigPhoto",2);
_root.galerie._x=11;
_root.galerie._y=400;
_root.bigPhoto._x=473;
_root.bigPhoto._y=75;
_root.galerie.loadGalerieFromXml("data_deco.xml",50,4,"Lignes",1,_root.bigPhoto);

Dans le clip "bigPhoto", il y a déjà une image lorsque l'on ouvre le swf. Et lorsque je clic sur une miniature (dans le clip "galerie"), on aperçoit la photo d'origine juste le temps que la nouvelle se charge, ce qui n'est pas très joli. Comment faire en sorte qu'une photo ne disparaisse que lorsque la nouvelle est completement chargée ? Merci.

8 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
31 mai 2007 à 19:19
non, c'est pour changer la ligne qui commence exactement de la même façon, c'est à dire la ligne 5 de ton code.
Utiliser un code, c'est bien, mais le comprendre c'est mieux ..

Ta question est niveau débutant de Flash.

Peg' :(
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
31 mai 2007 à 17:09
ben dégà tu changes ton systeme de loading de XML par :

this.galerieXml.onLoad = function(success){
if (success) {

Et ça devrait déjà mieux marcher ...

Peg'
0
cs_recco Messages postés 14 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 1 juin 2007
31 mai 2007 à 19:08
Merci de ton aide. Je ne suis pas l'auteur de ce code, je l'ai juste adapté. Le code que tu me propose, c'est pour remplacer cette ligne :
this.galerieXml.load(file); n'est-ce pas ? Mais je mets quoi après ?
0
cs_recco Messages postés 14 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 1 juin 2007
31 mai 2007 à 19:26
Mais je suis débutant en flash. J'avais trouvé la ligne après avoir posté...
Et je pense que c'est aussi en cherchant dans les posts existants que l'on peut progresser...
et effectivement, "Utiliser un code, c'est bien, mais le comprendre c'est mieux .." et l'eau, ça mouille.
Merci de ta réponse et sache que dans tout domaine on est le débutant de quelqu'un...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
31 mai 2007 à 19:56
oui, sauf que moi quand je débutte dans qqch, j'essaye de comprendre ce que je fais et je pioche pas par-ci ou par-là et après je viens me plaindre que ça marche pas ...

Flash a des tonnes d'aides, que ce soit en ligne ou sur le logiciel lui-même. Ici c'est vraiment quand t'as aucune idée de ce que ça pourrait être. Je suis persuadé que tu n'as même as cherché à savoir comment bien charger un XML. Moi j'ai appris tout seul avec la technique dont je te parle et j'ai pas commencé hier, alors t'es un grand garçon (surtout à ton age), tu te prend par la main et tu arrête de faire ta morale à 2 balles parceque t'es vexé de ma réponse ..

Un bon conseil : va faire un tour sur le tutoriel de Top30 sur le XML .. tu y arriveras tout seul ou tu joues l'assisté jusqu'au bout en demandant l'adresse exacte ?

Peg'
0
cs_recco Messages postés 14 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 1 juin 2007
31 mai 2007 à 22:47
1. qui s'est plaint ?
2. je pensais justement que ce forum était un forum d'aide.
3. mon xml se charge bien, je te remercie.
4. y'a pas d'âge pour apprendre et je suis assez content de ce que j'ai appris tout seul ou avec l'aide de gens plus doué que moi, sur des forums.
5. ma morale pourra t'éviter bien des soucis petit scarabé.
6. mon âge, tu l'auras certainement un jour (en tout cas, je te le souhaite)
7. je demandais juste de l'aide, si tu voulais pas, fallait juste le dire.
0
cs_recco Messages postés 14 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 1 juin 2007
1 juin 2007 à 09:24
Et pour info, ta solution ne résout pas mon problème. Merci quand même.
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
1 juin 2007 à 13:10
HOLA !!! Ne nous emballons pas...


Peg n'a pas tord, Recco non plus... mais revenons une seconde au premier post et que constate-t-on : la question ne porte pas sur le XML mais bien sur un probleme d'apparition de clip.


La ou Peg a raison, c'est que tu aurais du un peu creuser ne fusse que l'aide de flash sur loadMovie() et tu aurais constaté que lorsqu'on fait un loadMovie, automatiquement il vide completment le clip conteneur (réinitialisation) avant de charger le contenu. C'est pourquoi si tu as un clip _clip et que tu fais _clip._alpha=50 et ensuite tu charges une image dans le clip, à la fin du chargement _alpha sera égale à 100 %


Pour voir la nouvelle photo et effacer l'ancienne à la fin du chargement tu vas de toute façon avoir besoin de 2 clips :
- 1 qui charge le contenu et l'autre qui contient l'ancienne photo et ensuite c'est l'inverse...


La ou Recco a raison, c'est qu'on a tous été débutant à un moment ou un autre, et des questions qui nous paraissent stupides peuvent avoir un jour été un soucis.


CEPENDANT : si les visiteurs du forum, et surtout les débutants, essayaient de faire abstraction de leur probleme ultra précis et essayaient de comprendre d'abord le 'concept' de leur probleme.
En cherchant dans ce forum et dans l'aide de flash, énormément de questions vraiment basqies seraient évitées.

@+
0
Rejoignez-nous