Wait... the image is loading.

Table des matières:

Descriptions des objectifs
Difficultés rencontrées
Aspects techniques

Accès au cinéma virtuel
Source du CinemaControle.class


L'objectif principal de cet exercice était, pour moi, de trouver un moyen d'améliorer le cinéma virtuel de la BDP par le biais d'un petit applet JAVA. J'ai commencé avec des grandes ambitions: permettre à l'utilisateur de choisir n'importe quel film sur son ordinateur et le faire passer sur l'écran du cinéma virtuel par le biais d'un "browse your files"... En plus, je voulais absolument que les titres des fils s'affichent enfin au dessus des films en train de passer.
Avant de commencer à faire cet exercice, j'ai pensé d'abord m'entraîner à simplement faire passer un film dans le cinéma en appuyant sur un bouton correspondant au film. Je suis repartie de l'exemple qui permet de faire changer la couleur des sphères, en pensant qu'en quelques modifications, j'obtiendrais la même chose avec mes films...

C'est en commençant à remplacer les champs dans mon fichier d'exemple que je me suis rendue compte à quel point le fait de changer ce qui se trouvait dans le noeud texture était différent de changer une simple couleur sur un objet. En effet, s'il était facile de faire changer le noeud "MovieTexture", il n'en allait pas de même avec le démarrage du film... Le problème vient du fait qu'un film dans Vrml ne peut démarrer que si on lui donne un "StartTime". De plus, le son du film ne démarrera en même temps que le film qu'à la condition qu'il ait le même StartTime. Il fallait donc, en plus de changer l'url du noeud MovieTexture, définir à quel moment le film et le son démarrerait sur l'écran (c'est-à-dire, si possible, au moment où l'utilisateur cliquerait sur le bouton !).
Or, s'il est facile de "router" un TouchSensor vers un StartTime à l'intérieur de VRML, cela devient très difficile depuis une interface externe.
Il a donc fallu tâtonner pendant près d'une journée avant de trouver une manière de faire démarer le film en cliquant sur le bouton, en utilisant le temps "Java" divisé par 1000 dans la scène VRML (JAVA compte en millième de secondes alors que VRML compte en secondes...). Bien sûr, une fois ce problème résolu, il restait encore quelques InvalidNodeExceptions à attrapper avant de voir enfin mes trois boutons marcher...
Enfin, il était toujours aussi important que les titres s'affichent en même temps que les films -> j'ai donc rajouté un champs string "TheMovieTitle" dans mon fichier VRML, que le "ClickedButton" permet de changer en même temps que le film.

Comme toujours, je me suis acharnée à vouloir tout faire depuis mon mac pendant plusieurs jours, ce qui m'a au moins appris à configurer correctement son MRJ seule (vu que j'ai l'impression d'être la seule à essayer !!!), à lui donner les bons classpaths, et à compiler correctement. D'ailleurs, je pourrais éventuellement en faire un mode d'emploi pour les futurs "macmaniaques" qui voudraient s'acharner sur JAVA à TECFA...
Le programme que j'ai utilisé pour écrire mon code se nomme "Simplicity for JAVA" (j'en ai essayé plusieurs, mais seul celui-ci m'a paru assez complet et stable pour travailler), et marche très bien pour gérer les projets, vérifier les classpaths, faire les liens entre les fichiers etc... Pour compiler, j'ai utilisé à chaque fois le "javac" fourni avec le MRJ standard, qui est un petit utilitaire sur lequel on drag'n'drop les fichiers à compiler, et qui lui aussi est très efficace et traque très bien les erreurs de compilation.

Last modified 08.09.2000