Temps de chargement xml -> comment accélérer ou biaiser ?

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 27 sept. 2010 à 21:50
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 29 sept. 2010 à 09:05
Bonjour/bonsoir à toutes et à tous,

je ne sais pas si je poste dans la section appropriée mais soit :
je sèche cruellement sur un problème épineux qui annihile l'intégration de SWF Address dans mon site, en fait SWF Address fonctionne à merveille lorsque l'on lance le site de manière classique, à savoir quand on tape : www.monsite.com, mais là où je coince c'est lorsque qu'on tape un url précis qui pointe dans une rubrique/sous-rubrique/média de mon site. En fait comme beaucoup je charge dans des array les noms de mes médias contenus dans des fichiers xml, pour ce je crée des array multidimensionnels et via des boucles je remplis mes array. Problème : quand on pointe donc vers un url "précis" le chargement des fichiers xml n'est pas terminé et par conséquent le média à afficher... ne s'affiche pas et j'obtiens un joli "undefined" dans ma barre d'adresse, j'ai donc essayé plusieurs parades, mais sans succès..., à savoir faire 2 cas de figures en "pistant" l'état de l'affichage du site via des variables String, si par exemple toto "on" je lance la "rubrique" de manière classique, si toto "off" j'affiche le menu général en accéléré et j'affiche alors la "rubrique" désirée... Mais le média voulu ne s'affiche pas faute d'un chargement de xml complété. Bref, je ne vous énumérerais pas toutes les tentaives que j'ai effectuées car celles-ci se sont avérées infructueuses, néanmoins je sais que le problème vient du chargement des xml qui n'est pas terminé.
Je joins donc la partie de mon code où je gère le SWF Address si par hasard un "costaud" ou une "costaude" passait par là et aurait une suggestion à m'offrir pour tenter de régler mon souci :

SWFAddress.onChange = function():Void  {
//je récupère le contenu de la barre d'adresse :
var Adres:String = SWFAddress.getValue();
trace("Adres : " + Adres);
//je "dissèque" le résultat pour identifier les rubriques :
var Adr:String = Adres.slice(1, 5);
//je définis des varaibles pour identifier les éventuelles sous-rubriques :
var AdrAL:String;
var AdrMED:String;
var AdrS1:String;
var AdrS2:String;
var Rubrique:String;
var Media:String;
trace("Adr : " + Adr);
//j'émets les conditions :
if(Adr "" and Lancement "on"){
SWFAddress.setTitle("Musichrono - accueil");
Lancement = "off";
AfficherLogo();
}else if(Adr == "cont"){
TracerPistageOK();
SWFAddress.setTitle("Musichrono - contact");
LancerContact();
}else if(Adr == "info"){
TracerPistageOK();
SWFAddress.setTitle("Musichrono - information");
LancerInfo();
}else if(Adr == "musi"){
TracerPistageOK2();
SWFAddress.setTitle("Musichrono - musique");
LancerMusic();
//c'est ici que je suis en "phase de test" :
}else if(Adr == "grap"){
//j'identifie ma rubrique :
AdrAL = "/graphisme/";
//je récupère la chaîne de caractères qui se trouve après ma rubrique :
AdrS1 = Adres.substring(AdrAL.length, Adres.length);
//j'identifie ensuite la sous-rubrique :
Rubrique = AdrS1.substring(0, AdrS1.lastIndexOf("/"));
//puis j'identifie le mdéia de la sous-rubrique :
Media = AdrS1.substring(AdrS1.lastIndexOf("/")+1, AdrS1.length);
//j'ajoute ensuite des "éléments afin de recomposer le potentiel contenu d'un des index de l'array en rapport :
var RubriqueG:String = AdrS1.substring(0, AdrS1.lastIndexOf("/")) + ".xml";
var MediaG:String = Rubrique + "/" + AdrS1.substring(AdrS1.lastIndexOf("/")+1, AdrS1.length) + ".jpg";
trace("Rubrique : " + Rubrique);
trace("Media : " + Media);
//et enfin je lance mes boucles pour repointer dans mes array les index souhaités :
var i:Number;
var j:Number;
for (i=0; i 530){
CalerMiniaturesG();
}else if(Graph.graph_coteD["PicGraph"+PosG]._height <= 530){
trace("ok");
}
PistePosG = PosG;
}
//ensuite je cherche dans la 2nde dimension (la rubrique en somme) le média à afficher :
for (j=0;j<AlbumDimage[PosG].length; j++){
//et si ça matche je lance l'affichage du média :
if (AlbumDimage[PosG][j] == MediaG){
PosGim = j;
trace("PosGim : " + PosGim);
Graph.graph_coteG.graph_coteGB.graph_AlbumTitreT.text = "Album : " + AlbumT[PosG];
Graph.graph_coteG.graph_coteGB.graph_imTitreT.text = "Titre : " + AlbumDtitre[PosG][PosGim];
Graph.graph_coteG.graph_coteGB.graph_descT.text = AlbumDdesc[PosG][PosGim];
removeMovieClip(Graph.graph_image);
Graph.attachMovie("IDgraph_image","graph_image",getNextHighestDepth(),{_x:0,_y:0});
Graph.graph_image.GraphPreloader._visible = false;
//je charge alors mon image (car dans cette "rubrique" ce sont des images), et je définis le titre de ma page :
LoadBitmapSmoothed("graph/"+AlbumDimage[PosG][PosGim], Graph.graph_image.Image);
SWFAddress.setTitle("Musichrono - graphisme : " + Rubrique + "/" + Media);
}
}
}
}
trace("AdrS1 : " + AdrS1);
//ici je lance la fonction "TracerPistageOK" qui va m'indiquer si le site s'est lancé depuis le début ou si l'url
//pointe directement vers un média :
TracerPistageOK();
//et enfin je lance l'affichage de ma rubrique... Qui n'affiche pas le média souhaité lorsque l'url est "précis" :
LancerGraph();
}else if(Adr == "anim"){
TracerPistageOK2();
SWFAddress.setTitle("Musichrono - animation");
LancerAnim();
}else if(Adr == "webd"){
TracerPistageOK();
SWFAddress.setTitle("Musichrono - webdesign");
LancerWeb();
}else if(Adr "accu" and Lancement "off"){
SWFAddress.setTitle("Musichrono - accueil");
if(Contact._x == 650){
menuCentre();
MasquerContact();
}else if(Info._x == 650){
menuCentre();
MasquerInfo();
}else if(Anim._x 650 or Anim._x 520){
menuCentre();
MasquerAnim();
}else if(Graph._x == 690){
menuCentre();
MasquerGraph();
}else if(Music._x == 650){
menuCentre();
MasquerMusic();
}else if(PicWmini._x == 650){
menuCentre();
MasquerWeb();
}else if(Contact._x !650 and Info._x 1600 and Music._x == 1600 and Web._x == 1600 and Graph._x == 1600 and Anim._x == 1600){
trace("ok");
}
}
}


Bref, c'est donc dans la rubrique "graphisme" que je concentre mes efforts pour trouver la solution, mais sans victoire jusque là.
J'espère que mes explications sont suffisamment claires pour être compréhensibles, dans le cas contraire je peux développer.

Merci à celles et ceux qui prendront le temps de me lire .

Bonne soirée ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;

1 réponse

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
29 sept. 2010 à 09:05
Bon et bien je m'auto-réponds en proposant une solution qui pourrait peut-être marcher : créer un écouteur pistant une variable String qui changerait lorsque les fichiers xml voulus seraient complètement chargés, déclenchant ainsi mes boucles sur les arrays (remplis des données des xml fraîchement chargées) et lançant ensuite l'affichage de ma rubrique.

A votre avis ... Est-ce envisageable ?

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Rejoignez-nous