Premier exercice : les balles

Description :
A l'intérieur d'un espace délimité, des boules se déplacent.
Elles rebondissent sur les bords de l'espace qui les enferme.
Lorsqu'elles rebondissent, elles changent de couleur, de vert à violet et vice versa.

Analyse :
1 - La première chose à faire est d'assurer le déplacement des boules, aussi bien dans le sens horizontal que vertical.
2 - Elles doivent changer de sens de déplacement, horizontalement lorsqu'elles butent à droite ou à gauche, et verticalement lorsqu'elles butent en haut ou en bas.
3 - Au moment du rebondissement, elles changent de couleur pour devenir violettes si elles étaient vertes, ou vertes si elles étaient violettes.

Ce premier exercice sera traité de front en  Lingo , en  ActionScript  et en  Javascript .
Ces balises de couleur signaleront les sections de code dans ces langages, et les commentaires particuliers qui accompagnent ces fragments de code.

Outre que ces trois langages sont dominants dans les réalisations multimédia, cette triple étude vise à faire comprendre que les manipulations que l'on va faire sur les objets sont toujours conceptuellement identiques, non seulement en Lingo, en Action Script et en Javascript, mais aussi dans d'autres environnements, parmi lesquels on pourrait citer les formulaires Visual Basic. Ceci est valable d'une manière générale pour tout document dont le système de restitution permet l'accès à des propriétés et des événements (nous verrons cette notion d'événement très rapidement).
C'est au moment de l'implémentation dans le langage choisi que nous devrons tenir compte des particularités de ces langages, de leurs objets, de leurs événements...

Avant de continuer, voici une citation extraite de la documentation de Director MX2004, citation qui à mon sens résume assez bien la problèmatique générale de la manipulation d'éléments de média dans un environnement de restitution donné :

"...
- En général, un langage de scripting tel que Lingo ou JavaScript entoure un modèle d’objet et d’événement donné et donne accès à ces objets et événements.
- JavaScript est une implémentation de ECMAScript qui entoure le modèle d’objet et d’événement d’un navigateur web et donne accès aux objets et événements du navigateur.
- ActionScript est une implémentation de ECMAScript qui entoure le modèle d’objet et d’événement de Macromedia Flash et donne accès aux objets et événements de Flash.
- L’implémentation Director de JavaScript est une implémentation de ECMAScript qui entoure le modèle d’objet et d’événement de Director et donne accès aux objets et événements de Director.
- Lingo est une syntaxe personnalisée qui entoure le modèle d’objet et d’événement de Director et donne accès aux objets et événements de Director.
..."

On peut déjà faire une première remarque à propos de ce qui est dit de Director, qui, dans sa version MX2004, implémente 2 syntaxes : Lingo et ce que Macromedia appelle la "syntaxe Javascript de Director" :
- l'environnement, ses objets et ses événements sont un et unique,
- deux langages, deux syntaxes, permettent de faire la même chose avec les mêmes objets.

Ceci démontre bien que la syntaxe utilisée est une question triviale.
Ce qui est important, ce sont les objets, les éléments qu'on manipule, la richesse de leurs propriétés pour pouvoir leur appliquer telle transformation qu'il nous plaît de leur faire subir, et les événements qui permettent de déclencher telle ou telle action.
On fera donc le choix d'un environnement en vérifiant donc :
- les événements disponibles me permettent-ils d'oragniser mon architecture comme je le souhaite ?
- les objets et leurs propriétés disponibles me permettent-ils d'obtenir les effets ou les traitements que je souhaite obtenir ou appliquer ?

Nous verrons très rapidement dans ce cours que ces questions méritent d'être posées :
- dès la première étape du premier exercice, nous verrons que l'implémentation d'une fonctionnalité simple (faire varier une propriété de position pour obtenir un déplacement) va sensiblement différer, et dans l'architecture, et dans le traitement dans les trois langages,
- dès le deuxième exercice, nous verrons que nous aurons besoin d'une certaine propriété (la rotation d'un élément graphique) qui n'est pas disponible en Javascript... Ce qui le disqualifie donc pour cette animation particulière (sauf à recourrir à des astuces ou ersatz usuellement qualifiés de "bidouille").

Et nous verrons bien sûr de multiples différences, parfois subtiles, mais ces différences n'affectent pas le principe général de l'analyse à mener pour aboutir au résultat recherché.

Alors allons-y !

Retour au sommaire