Pour ceux que les watch et autres techniques pour connaitre la fin, résultat, d'une commande se rassurent, le modèle de développement à été modifié.
Je reviendrais plus tard sur ce point, mais maintenant, toutes les commandes sont basées sur un système évènementiel.
Dès qu'une commande est terminée ou bien si cette commande a généré une erreur, un évènement est directement envoyé avec toutes les infos dont nous avons besoins.

Voici donc un rapide tour d'horizon du nouveau SWF Studio dans sa version 3.

 

1.Mais à quoi ressemble-t-il ?

Quelques screnshots question de présenter la bête.

SWF Studio V3 interface

On constate que l'interface à beaucoup évoluée, et que les contrôles sont beaucoups plus nombreux.
On remarquera très vite dans l'onglet "Movie", que l'on peut modifer directement la variable Script Timeout ainsi que le niveau de récursivité du swf (plus besoin de passer par un logiciel externe comme SWF Script Limit Injector de Buraks dans ce cas).

SWF Studio V3 - SWF Tag injector

 

2. SWF Studio V3 API

Le développement s'appuie maintenant sur 6 modules principaux :

ssCore
module de base permettant de gérer toutes les commandes, propriétés entre Flash et SWF Studio

ssDebug
module permettant le debugging du projet (mode console ou dans l'IDE SWFS)

ssEvents
Module permettant la gestion des évènements (equivalent à EventDispatcher de MM)

ssGlobals
Module incluant toutes les propriétés dynamique, statique du projet (chemin d'accès à l'application, répertoire de windows, etc)

ssMovieClipLoader
Remplaçant du MovieClipLoader de Macromedia (permet de charger des éléments du layout de SWFS)

ssSecure
Module permettant de charger des fichiers en mode protégé (les fichiers ne sont pas écrit sur le disque dur)

Bien entendu, une pléiade de plugins sont disponibles pour effectuer des tâches plus spécifiques et complexes :
On trouvera par exemples :

ADO
ActiveX Data Object, pour gérer ces bases de données

Catalog
Permet la réalisation d'un moteur de recherche interne à notre application par exemple.

Email
Pour l'envoi de mail via SMTP .

FileSys
Gestion du système de fichier Windows

FTP
Gestion d'un File Transfert Protocol

HTTP
Gestion des méthodes GET, POST, communication Https, cgi, etc..

INIFile
Lecture / ecriture des fichiers de configuration .ini.

Joystick
Gestion des manettes de jeux

TCP
Utilisation du protocole TCP

UDP
Utilisation du protocole UDP

Mais où est le plugin pour accéder à la base de registre ? pas d'inquiétude, il est directement implémenté dans le ssCore, de même pour le SysInfo.

Autre nouveauté au tableau, la possibilité d'utiliser des scripts externes (JScript/VBScript uniquement pour le moment) directement depuis Flash.
Quelques points sur l'utlisation des scripts externes, parmi tant d'autres :

  • Les valeurs retournées le sont en mode synchrone (dans la plupart des cas, donc pas besoin de définir de callback)
  • Les scripts sont chargés à la volée
  • Support des Expressions Régulières

 

3. Mais encore

Continuons à passer en revue les principales nouveautés de cette version.
Un nouveau système de contrôle d'expiration est mis en place.
On peut maintenant lancer un autre swf si la date d'expiration est dépassée, bloquer, débloquer l'application à la demande.
Maintenant tout est gérable via l'objet ssCore.Security (donc directement depuis le code ActionScript)

On peut signaler aussi la possibilité de protéger les swf de l'application.
Si dans la version précédente il était possible de récupérer les fichiers swf inclus dans l'application (en cherchant bien), maintenant on peut demander à l'application de ne plus les écrire sur le disque.
Ainsi, il devient très compliqué de récupérer les sources swf (et donc procéder à une méchante décompilation). Les fichiers peuvent aussi est cryptés en interne. ;)

Du coté multimedia, l'Audio et la Vidéo sont maintenant sous controle des codecs Microsoft (WMA et WMV). Tout ce qui est lisible via le lecteur de Windows l'est maintenant dans SWF Studio V3.

Le plus gros point étant le module ssCore, il serait beaucoup trop long de lister et commenter tous les objets et méthodes de ce module.
Je vous invite donc à consulter plus précisemment la doc (très complète) sur son utlisation.
En vrac et dans le désordre...

  • Gestion souris / clavier
  • Tooltip
  • Compression / décompression des données
  • Cryptographie (encodage / décodage sur 448 bits)
  • Gestion du bureau
  • Gestion du fenêtrage
  • Barre des tâches
  • Clipboard
  • Outils pour embarquer un navigateur web
  • etc...

Coté documentation et aide au développement, cette version apporte aussi de bonnes choses.
On peut maintenant compter sur une documentation (Flash Format) complètement intégré au Flash IDE ainsi que le codehinting pour toutes les commandes de la V3 API.

L'application CodeBuilder vient compléter tout ça afin de donner le moins de travail possible (surtout niveau mémoire ^^) aux développeurs.

Cette application passe en revue absolument toutes les commandes de l'API actuelle.
On sélectionne une commande, on renseigne les paramètres demandés, callback et le code n'est plus qu'à être copié/collé dans votre editeur favoris.
(Peut aussi se réveler très pratique pour se souvenir de certains paramètres, code d'erreur etc...)

SWF Sutdio V3 CodeBuilder

Cependant, la définition des callbacks ne colle pas trop avec un développement purement AS2, je pense par exemple sous FAME.
Les purs et durs devront donc bosser un peu plus, pour le moment ;)

 

4. Conclusion

Vous l'aurez compris, la V3 n'a rien perdue et à beaucoup gagnée en efficacité, fonctionnalités, et surtout elle permet un développement beaucoup plus rapide et rigoureux en AS2. ;)

Quelques liens maintenant pour finir, avec bien evidemment le téléchargement de la version V3 SWF Studio V3
Le CodeBuilder est disponible ici : Codebuilder 3.0 build 2
Une base de support (FAQ, Forum et quelques trucs et astuces) sont disponible sur. Northcode Support
J'en profite pour remercier toute l'equipe de développement, et saluer toute l'équipe des beta testeurs !

Sur ce, bonne continuation et à bientôt pour de nouveaux billets sur SWF Studio ;)

Merci @+