begin process at 2012 05 27 08:05:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

jeudi 17 septembre 2009 à 02:08:16 | Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

pit256

Salut

je suis entrain de réaliser une galerie d'images avec Flash et voilà mon probleme :
j'essaie d'exploiter des données stockées dans 3 tableaux à partir d'un fichier XML (l'URL des images, l'URL des vignettes et les légendes correspondantes). Le but étant de créer des MovieClips à la volée en piochant, à l'aide d'une boucle, des images dans un dossier externe.

Tout fonctionne bien pour les images et les légendes, mais impossible de récupérer les URL de chaque vignette...

Voilà le code (j'ai indiqué là où ça fonctionne et là où ça merde) :

Code ActionScript :

...

url1 = new Array();
url2 = new Array();
légendes = new Array();

Fichier_XML = new XML();
Fichier_XML.ignoreWhite = true;
Fichier_XML.load("presse.xml");

Fichier_XML.onLoad = function(ok:Boolean) {
if (ok) {
x = Fichier_XML.firstChild;
for(i = 0; x.childNodes[i] != undefined; i++) {
url1[i] = x.childNodes[i].attributes.url1; //trace(url1[i]);
url2[i] = x.childNodes[i].attributes.url2; //trace(url2[i]);
légendes[i] = x.childNodes[i].attributes.legende; //trace(légendes[i]);
}
}
};



this.createEmptyMovieClip("vignettes",0);

this.createEmptyMovieClip("zoom", 1);
zoom.createEmptyMovieClip("conteneurZ", 0);

for (var i = 0; i<nbr; i++) {
var mc = vignettes.createEmptyMovieClip("vignette"+i, i);
mc._x = (largeur+espace)*i;
mc.createEmptyMovieClip("conteneur",0);
mc.conteneur.loadMovie(url2[i]); // Ca marche pas !

mc.nombre = i;

mc.onRollOver = function() {
this._xscale = this._yscale = 105;
}

mc.onRollOut = function() {
this._xscale = this._yscale = 100;
}

mc.onRelease = function() {
legendesZoom.text = légendes[this.nombre]; // Ca marche !
zoom.conteneurZ.loadMovie(url1[this.nombre]); // Ca marche !

...



C'est délirant parce que les 3 tableaux sont correctement remplis, mais rien n'y fait, si je fais un trace(url2[i]) à cet endroit j'obtiens des "undefined"...

Merci de m'éclairer !

samedi 19 septembre 2009 à 02:30:08 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

pit256

à vot' bon coeur !

lundi 21 septembre 2009 à 16:52:23 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

nickydaquick

Membre Club



Salut,

pourrais-tu nous donner la structure de ton xml ?

merci.
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!

lundi 21 septembre 2009 à 19:41:37 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

pit256

Salut,

En fait j'ai trouvé une solution...
Le problème venait du fait que le XML n'avait pas le temps d'être chargé avant l'exécution d'une bonne partie des autres instructions. Du coup j'ai séparé le script sur 2 frames, le premier pour le chargement du XML et le stockage dans les 3 tableaux, le deuxième pour la génération des clips et les événements. Puis j'ai placé un nextFrame() à la fin du if(ok), et ça roule...

Mais je suis pas entièrement satisfait...
J'aurai bien aimé que mon script fonctionne sur un seul frame. Ne serait ce que pour mieux comprendre la logique (l'ordre) d'exécution des instructions AS. Et puis c'est plus (pro)pre...

Mais peut être as-tu la solution ?

Voilà le code du frame 1 :

Code ActionScript :
stop();


Stage.scaleMode = "noScale";

largeur = 70;
espace = 20;

//____________________________________________


url1 = new Array();
url2 = new Array();
legendes = new Array();

Fichier_XML = new XML();
Fichier_XML.ignoreWhite = true;
Fichier_XML.load("presse.xml");

Fichier_XML.onLoad = function(ok:Boolean) {
if (ok) {
x = Fichier_XML.firstChild;
for(i = 0; x.childNodes[i] != undefined; i++) {
url1[i] = x.childNodes[i].attributes.url1; //trace(url1[i]);
url2[i] = x.childNodes[i].attributes.url2; //trace(url2[i]);
legendes[i] = x.childNodes[i].attributes.legende; //trace(legendes[i]);
}

nbr = i; // je stocke le nombre d'image décrites dans le XML
largeurTotale = nbr*(largeur+espace)-espace;
zone = 750;
extremeG = 50;
extremeD = zone-largeurTotale;

nextFrame();
}
};e


Voilà le code du frame 2 :

Code ActionScript :
this.createEmptyMovieClip("vignettes",0);

vignettes._y = 535;
vignettes._visible = 0;

this.createEmptyMovieClip("zoom", 1);
zoom._y = 0;
zoom.createEmptyMovieClip("conteneurZ", 0);

loaderPress._visible = 0;

for (var i = 0; i<nbr; i++) {
var mc = vignettes.createEmptyMovieClip("vignette"+i, i);
mc._x = (largeur+espace)*i;
mc.createEmptyMovieClip("conteneur",0);
mc.conteneur.loadMovie(url2[i]); //trace(url2[i]); trace(i);

mc.nombre = i;

mc.onRollOver = function() {
this._xscale = this._yscale = 105;
}

mc.onRollOut = function() {
this._xscale = this._yscale = 100;
}

mc.onRelease = function() {
loaderPress._visible = 1;
legendesZoom._visible = 0;
legendesZoom.text = legendes[this.nombre]; //trace(legendes[this.nombre]);
zoom.conteneurZ.loadMovie(url1[this.nombre]); //trace(url1[this.nombre]);

zoom.onEnterFrame = function() {
total = this.conteneurZ.getBytesTotal();
charge = this.conteneurZ.getBytesLoaded();
pourcent = Math.round(charge/total*100);

if (pourcent == 100) {
delete this.onEnterFrame;
zoom._x = 800 - zoom._width - 25;
loaderPress.pourcentage = 100 + "/100";
this._alpha = 0;

zoom.onEnterFrame = function() {
this._alpha += 10;

if (this._alpha >= 100) {
delete this.onEnterFrame;
loaderPress._visible = 0;
legendesZoom._visible = 1;
}
}
}
else { loaderPress.pourcentage = pourcent + "/100"; } // fin if-else pourcent

} // fin boucle zoom

} // fin mc.onRelease

} // fin boucle for



//____________________________________________


vignettes._x = extremeG;

vignettes.onEnterFrame = function() {
var souris = _xmouse - 400;
var déplacement = Math.pow((souris/100),3);
if (this._x - déplacement < extremeG) {
if (this._x - déplacement > extremeD) {
this._x -= déplacement;
} else {
this._x = extremeD;
}
} else {
this._x = extremeG;
}
};

vignettes._visible = 1;





Voilà le XML :
Code XML :
<?xml version='1.0' encoding="UTF-8" ?>

<main>
<image url1="presse/0.png" url2="presse/v0.jpg" legende="Rue des artistes. Maison Française."/>
<image url1="presse/1.png" url2="presse/v1.jpg" legende="Artisanat, Drôle de frimousse. Télérama."/>
<image url1="presse/2.png" url2="presse/v2.jpg" legende="Pink tulle dress with embroidered jewels by Chanel Haute Couture. Feather hats by Estelle Ramousse."/>
<image url1="presse/3.png" url2="presse/v3.jpg" legende="Casque en python noir laqué. Vogue Espagne."/>
<image url1="presse/4.png" url2="presse/v4.jpg" legende="Demi-tête paillette blanche et papillon brodé. Elle Japon."/>
<image url1="presse/5.png" url2="presse/v5.jpg" legende="Bombe en dentelle laqué et agneau plongé, pour Stephanie Coudert. L'Officiel Chine."/>
<image url1="presse/6.png" url2="presse/v6.jpg" legende="Bombe en feutre et agneau plongé, pour Stephanie Coudert. FN Japon."/>
<image url1="presse/7.png" url2="presse/v7.jpg" legende="Casque pour Gilles Rosier. Paper Magazine."/>
<image url1="presse/8.png" url2="presse/v8.jpg" legende="Résille a pois montée sur corde a piano. Estetica."/>
<image url1="presse/9.png" url2="presse/v9.jpg" legende="Casque de moto en cuir et plexiglas. Wad."/>
<image url1="presse/10.png" url2="presse/v10.jpg" legende="Haute-forme géants. Elle Espagne."/>
<image url1="presse/11.png" url2="presse/v11.jpg" legende=""/>
<image url1="presse/12.png" url2="presse/v12.jpg" legende=""/>
<image url1="presse/13.png" url2="presse/v13.jpg" legende=""/>
<image url1="presse/14.png" url2="presse/v14.jpg" legende=""/>
<image url1="presse/15.png" url2="presse/v15.jpg" legende=""/>
<image url1="presse/16.png" url2="presse/v16.jpg" legende="Perruque en toile gommée et paillettée. Glamour."/>
<image url1="presse/17.png" url2="presse/v17.jpg" legende="Structure polystyrène et tissus. Collezioni Italie."/>
<image url1="presse/18.png" url2="presse/v18.jpg" legende="Casque ressort, résille laqué noir et plumes marabout. Globe Hebdo."/>
<image url1="presse/19.png" url2="presse/v19.jpg" legende="Coiffe 'Chrysler'. Encens magazine."/>
<image url1="presse/20.png" url2="presse/v20.jpg" legende=""/>
<image url1="presse/21.png" url2="presse/v21.jpg" legende="Mon bouquin paru chez Solar."/>
</main>


Et voilà ce que ça donne : Galerie

Merci de te pencher sur mon cas.

lundi 21 septembre 2009 à 22:36:14 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

nickydaquick

Membre Club



Salut,

mettre ton script sur 2 frames c'est exactement comme creer une fonction qui fait le reste du code, mais que tu appelles dans la fonction onLoad

onne continuation
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!

lundi 21 septembre 2009 à 23:58:07 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

pit256

Donc ce n'est pas sale ?!

mardi 22 septembre 2009 à 15:29:58 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

nickydaquick

Membre Club

Salut,

non je ne trouve pas que ca l'est.

Bonne continuation.


http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!

mardi 22 septembre 2009 à 16:48:59 | Re : Problème avec un loadMovie en AS 2 (impossible d'exploiter des URL contenues dans un tableau)

pit256

Merci, a+



Cette discussion est classée dans : fichier, mc, xml, url2, légendes


Répondre à ce message

Sujets en rapport avec ce message

importation d'une image depuis du XML [ par djkiki ] Bonjour, Je souhaiterais importer une image depuis un fichier XML... et je ne sais pas du tout comment faire. Le debut du fichier XML est le suivant : Fichier XML [ par ddami1 ] Bonjour,Ma question concerne la source http://www.flashkod.com/code.aspx?ID=14118Quelqu'un pourrait-il m'expliquer comment faire pour réccupérer la va modifier XML [ par shubenka ] j'aimerai savoir comment proceder pour ajouter des variables dans un fichier xml . par exemple le fichier xml contient des news et, j'aimerais en rajo tableau de tableau ou tableau de MC? [ par rtgiman ] Salut à tous,je me pose une ch'tit question: je veux charger un fichier txt dans un tableau. (en gros, j'ai une classe avec 4 champs, par exemple un h Enregistrer fichier XML chez mon hébergeur à partir de flash [ par ddami1 ] Bonjour,J'ai créé un petite interface qui permet de sauvegarder des informations dans un fichier XML à partir de Flash.Cela fonctionne très bien sur u Flash + XML + recuperation de données (variables) [ par cadoudal56 ] Bonjour à tous et à toutes,Désolé, ma question risque de ne rien avoir de passionnant pour certains programmeurs chevronnés, mais je dois bien avouer XML et Flash [ par darkikari ] BonjoursS'est mon premier post, donc je me présente un peux : Je suis en stage informatique dans une boite (www.sts.ch) en tant que programmeur Action Probleme de compilation et fichier externe [ par buff@lofluo ] Bonjour , je vais essayer d'etre clair je charge un fichier xml:serie_m_xml = new XML();serie_m_xml.ignoreWhite = true;serie_m_xml.load("test.xml");ju fichier XML qui ne se charge pas sur le net mais bien en local [ par Killan ] bonjour, voici un morceau du code qui pose problemeau debut de mon script je charge un fichier xml dont une partie du nom est fournie par la page html probleme xml il prends la version du cache [ par 8fanfan8 ] je m explique : ca fait deja trois jours que je me galere et je trouve pas pourtant ja i bien compris ce qu il fallait faire mais bon.... j ai fait un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,591 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales