flash, actionscript, et mon derrière

Posté le jeudi 8 février 2007 à 9 h 07, Read it in english with Google

cherchez pas d’intru dans le titre, il n’y en a pas.

Je me suis dit hier soir que j’allais éssayé de passer des variables javascript à une animation Flash, alors j’ai pris pour modèle mon videoplayer.
J’ai réussi sans trop de peine mais j’ai remarqué que ça m’était un peu beaucoup de temps à récupérer les infos sur les fichiers du serveur. Alors j’ai voulu rectifier ça. malheur à moi…

La lenteur, c’était à cause d’une class Serializer que je m’était procuré il y a longtemps et que je n’avais pas regarder plus que ça. Je me suis donc plongé le nez dans le fichier Serializer.as contenant la class qui me sert à sérializer mes données. Déjà je me suis rendu compte que l’algo était un peu beaucoup foireux et qu’il fallait pas que je lui en demande trop, donc je suis aller prendre une nouvelle class directe sur sourgeforge que j’ai installé. Et là, surprise, c’est encore plus lent qu’avant….

C’est pas possible il n’y aurait que des boulet qui touche à flash ? Donc je me suis dit, vu que j’ai déjà fait des fonctions Serialize pour javascript je vais l’adapter en actionscript. Impossible, actionscript 2 ne permet pas de définir des variables avec la fonction eval() … Je cherhce un autre moyen… rien… L’aide fournie est fait pour les suceurs de tétines et induit en erreur. La fonction qu’elle me conseille : set(); alors je test :
ev = ‘[0][« label »]’;
set(‘final’+ev, »nom du media »);
pas d’erreur… pas de variable non plus ?? et en regardant le débugger je vois que ma variable s’apelle : « final[0][‘label’] » non non ce n’est pas un tableau, c’est juste le nom de la variable, pratique ça. Donc pas moyen de désérializer des données avec mon algo. J’ai donc remis le tout premier script à mon grand regret…

De plus, je sais pas si vous connaissez les fichiers ASO. Ce sont des fichiers de class précompiler à partir de vos propres fichiers, stocker dans un repertoire de flash, et incluent dans l’animation finale. Par exemple vous déclaré une class : import maclass.as ; flash créé un fichier maclass.ASO dans son répertoire, et ne le recompile pas à chaque fois. Donc si vous changé le fichier maclass.as, c’est pas pour ça que la classe va changer dans votre animation parce que flash reprend le fichier ASO…. ça c’est franchement du beau, comme si il n’était pas capable de savoir si le fichier est obsolète ou non.

Et puis j’aime aussi cette histoire de précompilation parce que vu les performances que ça apporte, on dirait plutot de la décompilation. c’est simple : 300 lignes et une cinquante d’object à désérializer : en javascript 2 secondes max, en actionscript… euh ben il me met l’alerte comme quoi le script est trop long avant d’en voir la fin.

A j’aillais oublié, j’ai éssayé la méthode banal avec un retour de chaine urlencoded de la part du serveur, en incluant des tableaux, par exemple:
test[0]=0&test[1]=1
et bien de nouveau Flash dans son infinie incompatibilité me définie des variables s’appelant « test[0] » et « test[1] », c’est la fete des bits 🙂

Dire qu’avant j’aimais flash, c’était la seul plateforme où je pouvais me faire des animations et en meme temps des requetes serveurs sans que ça bug d’un navigateur à l’autre. Mais maintenant c’est finis. ça ne sert plus qu’a difuser de la video médiocre et en petit écran, à lire de la musique dans des lecteurs minuscules (voir inexistant et controlé par javascript), et à pondre des jeux sans avenirs. Il n’y a que la fonctionnalité des webcams qui peut etre interressante mais vu il faut Flash Media Server derrière et que le (les?) serveur open source red5 n’est pas au point…

On ne m’y reprendra plus à éssayer de trouver de l’innovation la où il n’y en a pas.
Mais comment y font 2advanced ?

4 réponses à “flash, actionscript, et mon derrière”

  1. flash, actionscript, et mon devant… contient sur le sujet :

    […] 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 […]

    le jeudi 15 février 2007 @ 11 h 53
  2. oreru

    ev = ‘[0][”label”]’;
    set(’final’+ev,”nom du media”);

    =>

    final = []; // init un tableau
    final[0] = {}; // init un object

    ev = label;
    final[0][ev] = ”nom du media”;

    __

    test[0]=0&test[1]=1

    =>

    test_0=0&test_1=1

    i = 1;
    trace(this[‘test_’ + i]); // output: 1
    // trace(eval(‘test_’ add i)); pour flash lite

    faudrais creuser le langage avant de critiquer…

  3. XoraX

    Dans ce cas construit moi un parseur de requète http qui respecte la syntaxe des tableaux. Ici tu ne fais que transformer les informations d’entrées. Tu est loin de donner la solution. Mon but n’est pas de faire passer des donner dans n’importe quel format, mon but est de faire passer des données en requètte http suivant le standard. Si je voulais pas me faire chier je les passerait en xml.

    C’est comme si j’avais de l’UTF-16 en entré, que tu me le transformait en UTF-8 et que tu me dise « faudrait creuser le langage avant de critiquer… ». Qu’est-ce que le peut faire à part pouffer devant tant d’iincohérence ???

  4. seb

    Faire comme moi, continuer à chercher des possibilités et fumer un gros gringo!
    parfois ça aide à trouver des réponses 😛
    j’ai rien trouvé…
    j’en roules un autre mouhahahaha
    seb

Laissez un commentaire :