ActionScript: Socket.writeUTFBytes ne marche pas

Pendant de nombreuses heures, j’ai chercher à faire marcher les Sockets d’ActionScript. Ceux-ci ne marchaient pas, alors que le policyfile était chargé, il y a avait même un socket policy file server de mis en place, et le policyfile.txt ne m’affichais que des résultats positifs. Encore plus impressionnant, le socket créait une connexion mais les différentes commandes que je souhaitait envoyer ne passaient pas… C’est pourquoi, au bout d’un moment, j’ai utiliser Wireshark pour analyser les différents paquets envoyés. C’est avec celui-ci que j’ai pu voir que uniquement des paquets ACK et SYN étaient envoyés entre le client (via le Flash) et le serveur (socket). Ceux-ci étaient responsables de la connexion établie.

Seulement, les paquets réseau PSH (pour Push) qui envoient les commandes n’étaient pas créés, pas même de paquets déformés contenant mes commandes. Je suis sur Ubuntu 64bits, avec un Flash Player 10, version débuguage 32bits. Donc, un petit essai sur Ubuntu 32bits avec le flash player “basique”, et… miracle, ça marche ! Windows XP, ça marche !

En fait, mon code marchait depuis longtemps mais, pas de bol, ma version du Flash Player est bugguée avec les Sockets… Par conséquent, lorsqu’il se passe des choses comme ça, essayez avec d’autres versions, d’autres environnement car il arrive que se ne soit pas votre application qui soit bugguée mais une autre ! 😉

facebooktwittergoogle_plusredditpinterestlinkedinmail

Les interfaces en ActionScript 3

L’utilisation d’interfaces produit du code à écrire en plus, et surtout à maintenir ! Néanmoins, elle sont extrêmement pratiques lorsque vous utilisez plusieurs classes qui représentent quelque chose de visuel ou qui doivent savoir faire plusieurs actions, qui ne sont pas forcément écrites de la même manière ou qui n’utilisent pas le même support (exemple: un gestionnaire de sauvegarde – il peut y en avoir une classe pour sauvegarder dans PostgreSQL, une pour MySQL, une pour XML mais qui utilisent la même interface car doivent supporter les fonctions insert, update et delete par exemple). Bref, dans ces cas là – ou pour garantir une extensibilité et une réutilisabilité importante -, pour être sûr que votre classe contient bien les bonnes fonctions, il est préférable d’utiliser des interfaces.

En ActionScript, le comportement des interfaces est le suivant:

  • Vous devez les définir dans package
  • Vous devez lister toutes les fonctions (supposées publiques) que la classe doit avoir, sans préciser leurs types (public, private, protected…)
  • Une fonction est définie par son nom, ses paramètres et sa valeur de retour
  • Une interface peut étendre une autre interface en utilisant extends
  • Une classe peut implémenter une seule interface, en utilisant implements

Continue reading Les interfaces en ActionScript 3

facebooktwittergoogle_plusredditpinterestlinkedinmail

ActionScript: Le TimeStamp Unix

Gérer le timestamp UNIX dans ActionScript n’est pas très dur, même si ce n’est pas la méthode “classique” de gérer les dates, contrairement à PHP.

Timestamp actuel

Attention: Ça sera le timestamp client ! C’est-à-dire que si le visiteur n’est pas sur le même fuseau horraire, ça peut poser de nombreux problèmes de syncronisité si vous l’utilisez directement pour vos données.

Conversion

Pour transformer un timestamp en une date, faites ainsi :

facebooktwittergoogle_plusredditpinterestlinkedinmail

Flex/ActionScript 3: Accèder a un élément précis d’un XML

En Flex, pour accèder à un élement précis d’une chaine XML, c’est pas très dur mais il faut le savoir. J’ai chercher pendant 1h comment faire alors je vous le partage, ça peux faire gagner du temps à quelques personnes. Continue reading Flex/ActionScript 3: Accèder a un élément précis d’un XML

facebooktwittergoogle_plusredditpinterestlinkedinmail