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 :