Une grande tendance de ces temps ici est le développement à base AJAX (Asynchrone Javascript And Xml).
Cependant, peu de librairies existent (ou bien Google m'a joué des tours) pour améliorer, simplifier le développement Javascript.

JSDK est donc là pour palier (enfin.. :) ) à ce manque, en offrant certains possibilités pour le développement js.
En attendant une prochaine mouture plus orienté objet JavaScript 2.0 et EcmaScript 4, certains subterfuges ont été implémentés pour garder à l'esprit un schéma Object_based. (Une possible mise à jour vers js2.0 n'en sera que plus faciliter ;) ).
Il est ainsi possible de "forcer l'implementation" d'une interface et de simuler l'héritage d'une "classe" mère.

Parmis les outils déjàs disponibles, jsdk offre :

  • Structure de données (Queue, Stack, Iterator)
  • API pour la gestion native des évènements (permettant de gérer les évènements indépendamment du browser utilisé)
  • Gestionnaire d'évènements pour les objets (non natif) de Javascript (JSEventDispatcher, EventBroadcaster)
  • API pour le XmlHttpRequest (gestion transparente indépendamment du browser utilisé)
  • Wrapper pour le Flash / Javascript Integration Kit de Macromedia (avec possibilité d'abonner un swf en tant qu'écouteur d'évènement js)
  • Gestionnaire de commandes (process, macro, delegation)
  • Exceptions personnalisées

Certaines classes sont directement issues (traduction) du framework AS2 Pixlib de Mister Francis Bourre, que j'ai eu le plaisir de tester il ya quelques temps.

Un petit exemple, la gestion des évènements js ( + collaboration avec Flash) :

1.   <!-- jsdk importation -->
2.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/config.js"></script>
3.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/core.js"></script>
4.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/io.js"></script>
5.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/exceptions.js"></script>
6.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/utils.js"></script>
7.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/events.js"></script>
8.       <script language="JavaScript" type="text/JavaScript" src="../jsdk/commands.js"></script>
9.   <!-- End importation -->
10.  
11.  <!-- Macromedia library -->
12.      <script language="JavaScript" type="text/JavaScript" src="../jsdk/JavaScriptFlashGateway.js"></script>
13.  <!-- End -->
14.  
15.  
16.  <script language="JavaScript" type="text/JavaScript">
17.            function runTest()
18.       {
19.                 //On dispatch l'évènement (invocation d'une methode ActionScript du swf abonné)
20.                 oEB.broadcastEvent( new FlashEvent("myFunction", this, "myString", new Date().getTime()) );
21.         }
22.         
23.            function onTest(p_oEvent)
24.       {
25.                 alert("Event type : " + p_oEvent.getType());
26.         }
27.         
28.         
29.         //Creation d'un nouvel objet Flash
30.         var oFlash = new FlashObject('client.swf', 300, 60);
31.         
32.         //On connecte le proxy en indiquant le chemin du .swf
33.         oFlash.connect('../jsdk');
34.         
35.         //On déclare un nouveau dispatcher d'évènements
36.         var oEB = new EventBroadcaster();
37.         
38.         //On abonne le Flash 
39.         oEB.addEventListener("myFunction", oFlash);
40.         
41.         //On abonne le document en cours en delegant le callback vers la fonction onTest
42.         oEB.addEventListener("myFunction", Delegate.create(this, onTest));
43.         
44.         
45.         //On lance le test
46.         runTest();
47.  </script>

Comme vous pourrez le constater, le développement s'approche vraiment d'un développement AS ;)

Une première mouture de jsdk est disponible en ligne, cependant beaucoup de tests doivent être encore effectués, et de nouvelles fonctionnalités viendront bientot s'ajouter au framework existant.

  • La documentation est disponible ici : téléchargement off pour le moment
  • Télécharger le framework ici : téléchargement off pour le moment
  • Des exemples d'utilisation ici : téléchargement off pour le moment

Une release du Flash / Javascript Integration Kit de Macromedia est livré avec dans l'archive ci dessus en respectant les termes de l'Open License (modeled after the Apache 1.1 license).
JSDK est lui livré sous un contrat Creative Commons

Creative Commons License

A+ pour de nouvelles aventures ;)