flash, actionscript, et mon devant…

Posté le jeudi 15 f√©vrier 2007 à 11 h 53, Read it in english with Google

Vu que mon videoplayer devient quelque peut blind√©, et vu la lenteur du au probl√®me de parsage de chaine s√©rializ√©, la situation n’allait qu’empirer.. Donc je me suis dit, je vais √©ssayer de transmettre mes donn√©es en XML vu qu’un parser XML est pr√©sent dans Flash 8.

Premi√®rement, avec Flash si vous voulez r√©cup√©rer des donn√©es XML vous √™tes oblig√© d’envoyer des donn√©es uniquement en XML. Oui c’est magique. Bref vu que je n’avais aucune et que je n’es toujours aucune id√©e de comment receptionnner des donn√©es XML sur un serveur avec PHP, j’ai plut√īt d√©cider d’envoyer des variables normales et de receptionner mon contenu XML dans une variable. Ainsi, une fois la variable receptionn√©, je balance le contenu au parser XML qui fait le boulot :

var arraylistfiles:Array; //notre tableau bi-dimensionnel : [index de fichier][attribut]
var XMLloader = new LoadVars();
var XMLrecv = new LoadVars();
XMLrecv.onLoad = function (success){
  if(success && this.files){
    trace('bien');
    arraylistfiles = new Array();
    var xml = new XML(this.files);
    var tp:Array, i;
    for (var m:XMLNode = xml.firstChild.firstChild; m != null; m = m.nextSibling) {
      tp = new Array();
      for(i in m.attributes) tp[i] = m.attributes[i]; //on remplit le tableau par les attribut de la node courrante
      arraylistfiles.push(tp); //on insert le tableau dans la liste des fichiers
      //arraylistfiles.push(m.attributes); //√† ne pas faire : node.attributes est un objet (peut causer probl√®me par la suite)
    }
  } else {
    trace('pa bien');
    arraylistfiles= new Array({label:"error : no files found"});
  }
  loadlistfile(arraylistfiles); //la liste des fichiers est remplit, on en fait ce qu'on veut.
}
XMLloader.xml = 1; //parametre à envoyer pour dire qu'on veut un retour en xml (à définir dans le script php)
XMLloader.sendAndLoad('http://.......php5',XMLrecv);

J’ai eu des soucis pour cr√©er mon doc XML en php. L’extension DOM XML n’est pas disponible chez Free… et apparement ils n’ont inclue que l’extension XMLwriter sur PHP5. Gal√®re je dois refaire mon code… cela dit, je n’ai pas √©t√© d√©√ßu par l’extension. Simple et rapide, elle est bien loin de la complexit√© du DOM qui multiplie les lignes le plus inhumainement possible.

Et √ßa √† marcher! bon √©videment si vous √©ssayer de balancer le contenu d’un document XML au parser, il n’en veut pas.

<?xml version="1.0" ?>
<root>
<media path="http://......blabla.flv" name="blabla"/>
<media path="http://......blablabla.flv" name="blablabla"/>
...
</root>

Tout simplement parce qu’il n’aime pas l’ent√™te <?xml … ?>… oui on peut pas dire qu’il soit tr√®s malin…
Mais √† part √ßa, au moins, il marche √† merveille. On peut pas dire qu’il inclue des fonctions avanc√©s mais c’est d√©j√† √ßa.

Conclusion : je passe de 10 secondes de chargement √†… 2 secondes! Mais voyez plut√īt le r√©sultat ūüėČ

Laissez un commentaire :