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 :