RegExp dans Flash 8 : une solution grace à ExternalInterface
Par -Alexandre LEGOUT aka LAlex- le mardi, août 30 2005, 11:29 - Liens - Lien permanent
Pour tout de suite rassurer ceux qui auraient eu de faux espoirs dûs au titre de ce billet, les RegExp ne sont pas dans Flash 8... Par contre, les nouvelles possibilités du player laissent entrevoir une alternative plutôt élégante. ![]()
En effet, Flash 8 dispose d'une nouvelle manière de communiquer avec ses "hôtes", notamment les browsers, mais aussi les projecteurs de type mProjector. Ce remplacement de FSCommand, permet de faire des appels synchrones a des API externes. Vous trouverez plus d'infos sur la mailing list de OSFlash (merci Darron Schall), ou sur le blog de Geoff Stearns qui s'attarde sur la partie Javascript.
Pour revenir a nos RegExp, le même Geoff Stearns a tout simplement une l'idée aussi simple que géniale d'utilise les RegExp de Javascript. En effet, Javascript intègre complètement les expressions régulières et est intégré dans la plupart des navigateurs. Il est donc possible d'encapsuler complètement la communication Flash/Javascript, et de les utiliser comme s'il s'agissait de fonctions natives, comme c'est montré (via l'utilisation de prototypes) sur ce même blog. Il est bien évidemment possible de créer une classe indépendante qui gérerait tout ca.
Une trés bonne alternative à la classe RegExp développée en AS1 (puis portée en AS2 par Joey Lott), qui de par sa nature, doit être bien moins performante (enfin, je suppose :$).
Reste malgré tout l'inconvénient de ne pas pouvoir les tester dans l'environnement auteur de Flash, ou via un simple SWF dans le projecteur standalone. On reste donc obligé de le tester via une page HTML.
Mais si une interface de type IRegExp était créée, puis implémentée par les différents projecteurs (mProjector, SWF Studio, ScreenWeaver, etc...), on pourrait ainsi avoir un accés commun aux RegExp dans n'importe quel environnement, avec pourquoi pas la classe RegExp en AS (adaptée bien sûr, sans utilisation de String.prototype) pour le projecteur par défaut! ![]()
Commentaires
Oui
Moi je vois bien une classe RegExp qui utilisera selon les besoins et l'environnement du javascript ou du SSAS avec FCS ou un intrinsèque de la classe RegExp AS2 et un petit chargement externe de la classe en cas de besoin 


Mais bon ... il y a les RegExp dans Central et dans FCS ... pourquoi n'ont ils tjs pas mi en place celles ci dans FLASH8 ?? mystère ?
EKA+
Yes, belle alternative ! Reste à militer pour l'IRegExp, avec un peu de chance MM reprendra cette interface pour créer une classe native dans le prochain player
Eka> Celle de Central est plutôt pas mal buggée ...
ouep mais elle existe
Ils ont bien repris la classe pour l'upload ! (Qui semble elle aussi un peu buggué .. mais je l'ai pas encore testé j'attend d'avoir flash8 dans les mains :D)

cela leur coutait rien d'en faire une version opérationnelle native
Dans tous les cas... moi je regrette vraiment qu'on n'est pas une vraie uniformisation des possibilités.. sans vraiment aller trop trop loin en ayant juste quelques petites mises à niveau entre SSAS, AS2 etc. on peut vraiment se satisfaire de pas mal de chose.. là je vois surtout comme FLASH8 grosse mise à jour que pas mal de monde attendait l'upload, la justification du texte, super effets pour les graphistes (même si on avait déjà pas mal de chose grace à Penner) ... le plus changement les plus appréciable reste la maitrise des pixels même si maintenant je suis certain que l'on va encore avoir trop de flash pour faire du tap à l'oeil qui va tourner de moins en moins bien par faute d'optimisation ... bref
On va bien s'amuser avec cette nouvelle version mais je pense que pour le moment on a pas encore tout ce qu'on voudrait.. dommage
Comme le témoigne cet article, les RegExp seront disponibles dans le Flash Player 8.5 et ActionScript 3.
Encore un peu de patience donc
It adds regular expressions support for better text parsing and processing
oui, mais pour le moment nous sommes avec le player 8 pour encore un bon bout de temps
17 octobre, ça fait longtemps pour toi :p ?
17 octobre, c'est un alpha. Ça sera incomplet et surement très buggé. Et le player 8.5 ne sera pas dispo pour le client (quel client voudra installé un flash player alpha ? :P). Donc inutilisable dans le cadre d'un vrai projet... Il faudra surement encore attendre un bon bout de temps avant d'avoir un release officiel.
MM a fait d'une mention d'une release pour septembre 2006.
Je trouve que c'est une bonne idée d'avoir opté pour une alpha public cette fois. Cela ouvrira sans aucun doute la voie à beaucoup plus de feedback du coté des développeurs.
Fil des commentaires de ce billet