JSDK (JavaScript Development Kit) - Approche
Par Romain Ecarnot, mardi 21 juin 2005 à 18:09 :: Etude et Recherche :: #1 :: rss
Suite au Flash / Javascript Integration Kit de Macromedia, je me suis rendu compte d'un certain vide au niveau des librairies de développement orientées Javascript.
Je me suis donc lancé dans le développement d'un framework Javascript pour permettre un développement js plus souple et plus complet.
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
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
A+ pour de nouvelles aventures 


Commentaires
1. Le jeudi 21 juillet 2005 à 18:57, par brian leroux
2. Le jeudi 21 juillet 2005 à 22:43, par eRom
Ajouter un commentaire