Flash et xml

Résolu
Signaler
Messages postés
14
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
1 juin 2007
-
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
-
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

Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
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' :(
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
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'
Messages postés
14
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
1 juin 2007

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 ?
Messages postés
14
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
1 juin 2007

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...
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
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'
Messages postés
14
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
1 juin 2007

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.
Messages postés
14
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
1 juin 2007

Et pour info, ta solution ne résout pas mon problème. Merci quand même.
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
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.

@+