Flash 8 : Premières impressions
Voici mes premières impressions sur Flash 8 du point de vue RIA c'est à dire de l'utilisation des composants pour l'écriture d'applications "évoluées".
Les composants dans Flash 8 : la catastrophe
Pour les composants UI (User Interface), il n'y a aucun nouveau composant par rapport à Flash MX 2004.
Si on compare les sources de Flash MX 2004 et Flash 8, on est passé de la version 2.0.1.78 à la version 2.0.2.126 des composants.
Quelques bugs ont été corrigé (par exemple pour l'écriture des CellRenderer pour la DataGrid). De nouveaux bugs sont arrivés.
Le seul nouveau composant est le composant FLVPlayback pour la vidéo.
C'est un peu la catastrophe pour l'écriture d'application RIA. Sans vouloir retrouver les composants de Flex, on aurait aimé trouver au minimum les composants proposés dans les DRK tel que le composant TabBar.
Le grand manque pour l'écriture d'application RIA, c'est l'absence de gestionnaire de placement et de redimentionnement de composants. A quand l'équivalent du GridBagLayout (utilisation avec JBuilder) de Java en Flash.
Les bonnes nouvelles sur les composants
Sources
De nouveaux sources sont livrés avec Flash 8 (répertoire Macromedia\Flash MX 2004\en\First Run\Classes). On trouvera les sources du XMLConnector, du DataSet, des liaisons de données (package mx.data.binding), du WebServiceConnector, etc...
Documentation
Elle a été améliorée. Par exemple, on trouve un paragraphe sur DataGrid performance strategies ou des exemples de CellRenderer. Rien d'exceptionnel mais de bons conseils pour les débutants.
Des exemples des nouvelles fonctionnalités sont ici : http://www.macromedia.com/go/component_samples
Upload
Vous pourrez effectuer de l'upload (et du download) de fichiers. Il faut consulter l'objet FileReference et FileReferenceList de la documentation. Un exemple est fourni dans le répertoire Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\FileUpload.
Ceci va permettre d'écrire plus simplement des applications d'administration et/ou de back-office qui demandent des téléchargements de fichier.
Performance
Flash 8 vient avec le Player Flash 8. Quelques tests (sur des applications utilisant XMLConnector, DataSet et DataGrid) montrent qu'il est plus performant que le Player 7.
Les mauvaises nouvelles sur les composants
Compilateur
Il est toujours aussi lent. Par contre, il détecte de nouvelles erreurs (par exemple, mauvaise utilisation d'une méthode private).
Compiler une application Flash MX 2004 en Flash 8 génère généralement de nombreux messages d'erreurs (si vous utilisez des fichiers externes pour coder en ActionScript). Il faudra adapter vos applications.
Sécurité
La gestion de la sécurité a été encore modifiée. En Flash 8, lors de la publication, il faudra choisir entre accès sur un serveur ou accès local. Plus d'informations.
Je n'ai pas trop testé mais des bonnes soirées en perspective....
La vidéo
C'est la NOUVEAUTÉ avec le nouveau codec On2 VP6.
Il est possible de gérer un canal alpha. Voir la démo de la femme qui se déplace.
Le seul nouveau composant FLVPlayback possède de nombreux skins (qu'il est possible d'adapter).
Des premiers tests montrent que la vidéo est plus nette mais que les fichiers flv sont plus gros...
Les nouveautés pour "designers"
Vous l'aurez compris, Flash 8 est une version plutôt destinée aux designers. Toutes les nouveautés sont ici : http://livedocs.macromedia.com/flash/8/main/00001133.html
Je ne m'étendrais pas. Vous trouverez de nombreuses informations sur
les sites français suivants : FlashXPress, MediaBox, Flash-France
les blogs français suivants : Tween-Pix, Ekameleon, jeanPhiBlog, rmlab et les autres...
les blogs américains suivants : mock (Flash 8 review), kaourantin.net
Convertir une application Flash MX 2008 en Flash 8 (et les bugs de Flash 8)
Voici quelques trucs et astuces pour éviter les erreurs de compilations en Flash 8 (lorsque vous utilisez des fichiers externes pour coder vos actions ActionScript).
rootForm, parentForm, rootSlide, parentSlide
Si vous utiliser les Forms ou les Slides, l'expression rootForm.myForm provoque l'erreur de compilation suivante :
There is no method with the name 'myForm'
Pour être compatible Flash MX2004 et Flash 8, il suffit d'écrire : (rootForm).myForm
tabIndex sur DataGrid
Le "gros" bug de Flash 8 (suite à une correction dans mx.core.View). Dans l'environnement de développement, il n'y a pas d'erreur de compilation mais tabIndex ne fonctionne pas. Dans un fichier externe ActionScript, myDatagrid.tabIndex = i++; provoque l'erreur :
Type mismatch in assignment statement: found Number where Function is required.
Pour contourner ce bug et être compatible Flash MX2004 et Flash 8, il suffit d'écrire (pour l'instant) :
myDatagrid.__tabIndex = i++;
Renderer
Une erreur importante a été corrigée dans DataGridRow. Si vous contourniez ce bug, il va falloir adpater vos CellRenderer à Flash 8. Pour information, il a fallu que je ré-écrive les démos des renderers pour être compatible Flash MX 2004 et Flash 8 (HtmlCellRenderer, RatingRadioRenderer).
Conclusion
Faut-il passer à Flash 8 ? La réponse est OUI sans hésiter.
Par contre, prévoyez un portage/adaptation de vos applications sur Flash 8.