multiple loading en chainage, chargement de vignette dans une boucle

fredzy_2000 Messages postés 5 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 24 novembre 2005 - 18 sept. 2005 à 16:50
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 - 19 sept. 2005 à 14:54
salut a tous

et bien voila mon 'tit pb

j'ai realise un proto de galerie dynamique en xml qui fonctionne parfaitement,

cependant lorsque je charge via une boucle mes miniatures clickables

elle
se charge toute en meme temps alors que desire qu'elle se charge en
chaine, soit l'une apres l'autre afin d'epargner la bande passante .

j'ai tout essaye (ou presque.....)



bref si un bon samaritain pouvait me tirer de la melasse ....



voici mon code commente

merci



///////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////cree un nouvelle objet xml
var pictureShow:XML = new XML();
pictureShow.ignoreWhite = true;
////////////////////////////////charge l'xml
pictureShow.onLoad = function(success) {
//////////////////////////////// definie le nombre d'elements a charger
_global["numberOfImages"] = pictureShow.firstChild.childNodes.length;
////////////////////////////////cree une boucle qui definie un tableau remplie de x nouveaux objets qui parsse les attributs du fichier xml
for (var i = 0; i<_global["numberOfImages"]; ++i) {
_global["tempArray"+i] = new Object();
_global["tempArray"+i].thumbURL = this.firstChild.childNodes[i].attributes.thumbURL;
_global["tempArray"+i].jpegURL = this.firstChild.childNodes[i].attributes.jpegURL;
_global["tempArray"+i].titre = this.firstChild.childNodes[i].attributes.titre;
_global["tempArray"+i].commentaire = this.firstChild.childNodes[i].firstChild.nodeValue;
}
};
//////////////////////////////// load le fichier xml
pictureShow.load("images.xml");
////////////////////////////definie le mc a duplique comme invisible
dropDownList_mc.item_mc._visible = false;
////////////////////////////////creation de la fonction qui va duplique le mc receptacle
function thumbnail() {
////////////////////////////////espace entre les mc duplique
var spacing:Number = dropDownList_mc.item_mc._width+5;
////////////////////////////////variable a incrementer
var b:Number = -1;
////////////////////////////////boucle qui duplique le mc receptacle
while (++b<_global["numberOfImages"]) {
////////////////////////////////incrementation de b a chaque boucle
var name:String = "item"+b;
dropDownList_mc.item_mc.duplicateMovieClip(name, b);
////////////////////////////////attribue au champs texte: itemName_txt le contenu de l'objet .titre du tableau tempArray
dropDownList_mc[name].itemName_txt.text = _global["tempArray"+b].titre;
//////////////////////////////// charge dans le mc loader_img le chemin contenu dans l'objet .thumbURL du tableau tempArray
loadMovie(_global["tempArray"+b].thumbURL, dropDownList_mc[name].loader_img);
////////////////////////////////definie l'espace entre les mc's receptacle
dropDownList_mc[name]._x = b*spacing;
dropDownList_mc[name]._y = 0;
//////////////////////////////// attribue un chemin identifant a chaque bouton contenu dans les mc's receptacle
dropDownList_mc[name].pictureID = _global["tempArray"+b].jpegURL;
////////////////////////////////attribue aux mc's un contenu de variable commentaire a charger par la suite dans: comment.text
dropDownList_mc[name].commentaire = _global["tempArray"+b].commentaire;
//////////////////////////////// attribue a chaque bouttons des mc's une fonction qui charge ume image dans loader_img_big et un commentaire dans comment.text
dropDownList_mc[name].list_btn.onRelease = function() {
loadMovie(this._parent.pictureID, loader_img_big);
comment.text = this._parent.commentaire;
};
}
}
//////////////////////////////// initialise la fonctio de depart
dropDownList_mc.menu_btn.onRelease = function() {
thumbnail();
};
stop();

3 réponses

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
19 sept. 2005 à 13:38
Salut

une fois que tu as charger le xml, tu lance le chargement de la premiere image sur le premier thumb,

tu control ce chargement avec clipThumb.getBtesLoaded et getBytesTotal

quand ce dernier est chargé, tu lance le chargement du thumb suivant

et ainsi de suite ...

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
0
fredzy_2000 Messages postés 5 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 24 novembre 2005
19 sept. 2005 à 14:45
pourquoi pas mais je sais pas si ca va marcher avec ma boucle (si je
l'insere dedans) peut etre avec un onenterframe et un if () qui
check le cargement de la 1ere vignette, puis
increment ma boucle de +1 en relancant ma fonction de cahrgement , mais
je pense que je vais essayer avec un moviecliploader

les 2 soluces sont a tester .

merci benjy
0
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
19 sept. 2005 à 14:54
Salut

mais non bien sur c pas dans la boucle qu'il faut le faire

bon j'explique :

tu as sur root ton thumb

tu charge le xml

tu le parse, a la fin du parssage tu appel un fonction loadImage avec l'indice de la premiere image

loadImage(0);

ta loadImage fait par exemple :

function loadImage(i)[

_imageInLoad = i;

_root["thumb"+_imageInLoad].loadMovie(_root.tableauDeImages[_imageInLoad]); // ou tableua des images est un tableau que t'as créer en chargeant l'xml

_root.onEnterFrame = function(){

var pc = _root["thumb"+_imageInLoad].getBytesLoaded()*100:_root["thumb"+_imageInLoad].getBytesTotal();

if (pc >= 100){

// l'image est chargé, on passe à la suivante

delete _root.onEnterFrame;

if (_imageInLoad < _root.tableauDeImages.length-1){

_root.loadImage(_imageInLoad+1);

}

}

}

}



et voilà les images se chargerons les une a la suite des autres...

bon l'exmple est sur _root pour simplicité, mais tu peux extrapolé au chemin que tu souhaite

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
0
Rejoignez-nous