Pourquoi cette commande externe ?
D'abord, je l'ai écrite pour mon usage personnel alors
qu'il n'existait aucune XCMD libre de droit permettant de jouer des
movies QuickTime pour HyperCard.
Je voulais pouvoir jouer des animations par dessus un autre
affichage couleur, par exemple, sans que l'on puisse percevoir
l'apparition d'une nouvelle fenêtre. Ceci supposait d'afficher
une fenêtre sans bordures, mais aussi sans remplissage de
l'intérieur de la fenêtre par une couleur de fond (blanc
en général).
C'est ce que j'ai réalisé avec la ressource WDEF
"GHOSTWDEF" associée à la XCMD "SIMPLEMOVIE".
Comment utiliser SimpleMovie ?
Syntaxe de la commande:
SimpleMovie longfilename,location
[,controller|,badge|,invisible|,paused|,closeonfinish|
{,LoadIntoRAM|,LoadFromDisk}|
{,Plain|,Windoid|,Document|,Dialog|,AltDialog|,GhostWDEF}]*
* les paramètres optionnels peuvent figurer
dans n'importe quel ordre; les majuscules ne sont pas
significatives.
en cas d'erreur, la variable 'the result' contient un message
d'erreur
Deux paramètres sont obligatoires:
- longfilename : le nom long du fichier contenant la
movie QuickTime à jouer (si le fichier est placé
dans le même dossier que la pile, le nom court suffit)
- location : les coordonnées par rapport à
la carte courante du point haut gauche de la fenêtre
à créer. Ces coordonnées sont
indiquées par des constantes dans l'ordre d'HyperCard
(gauche,haut) ou par des expressions du type 'the topleft of É'
Exemples:
- SimpleMovie "My Summer Vacation","100,50"
SimpleMovie "My HD:Movies:Bugs Bunny",the topleft of card
window
Paramètres optionnels:
- controller: pour afficher la barre de navigation en bas
de la fenêtre
- badge: pour afficher le badge à l'arrêt
sur la movie
- invisible: pour une fenêtre non visible (pour
jouer seulement un son par exemple)
- paused: pour une movie arrêtée sur la
première image
- closeonfinish: pour la fermeture automatique de la
fenêtre à la fin de la movie
- LoadIntoRAM ou LoadFromDisk: pour une movie
chargée ou non en mémoire RAM
- Plain ou Windoid ou Document ou
Dialog ou AltDialog ou GhostWDEF : style de
la fenêtre à créer (GhostWDEF étant la
fenêtre fantôme citée plus haut)
Options par défaut:
- nocontroller, nobadge, visible, nopaused, noCloseOnFinish,
LoadFromDisk, Plain
Propriétés:
- Dans un souci de simplicité, seules des
propriétés sont utilisées (pas de commandes,
ni messages). Elles sont associées à la
fenêtre externe contenant la movie désignée
par le nom court de la movie.
- Les noms des propriétés de la fenêtre
créée sont :
- visible,location, mute, audiolevel, badge, closeonfinish,
controller, play
- visible et location sont les
propriétés standards des fenêtres
externes:
set the loc of window "vacances" to "100,20"
hide window "Marie" est équivalent à
set the visible of window "Marie" to false
- mute: true ou false pour supprimer le son d'une movie
ou le rétablir
- audiolevel: 0 à 255 pour fixer le niveau du son
d'une movie ou le connaitre
get the audiolevel of movie "Rebecca"
- badge: true ou false pour autoriser ou non le badge sur
la movie à l'arrêt
- closeonfinish: true ou false pour fermer ou non la
fenêtre à la fin de la movie
- controller: true ou false pour afficher ou non la barre
de navigation
- play: true ou false: pour jouer ou arrêter la
movie ou interroger sur son état
Comment mettre en oeuvre SimpleMovie ?
Deux moyens:
- indiquer dans un handler par exemple on openstack que votre
pile utilise les ressources de la pile de démonstration
(placée dans le même dossier que votre pile, sinon
indiquer le nom complet de la pile d'exemple)
start using stack "SimpleMovie 1.0"
- copier avec ResEdit dans votre pile ou la pile de base les
ressources XCMD "SIMPLEMOVIE" et WDEF "GHOST" depuis la pile de
démonstration
Limitations et erreurs connues
Cette pile utilise l'extension QuickTime et est donc
limitée aux processeurs supportés par QuickTime.
Elle utilise les fenêtres externes gérées par
HyperCard qui n'existent que depuis la version 2 d'HyperCard.
Une erreur de la boite à outils QuickTime empêche de
fermer la fenêtre si les propriétés badge et
closeonfinish sont vraies. Dans ce cas à la fin de la movie,
l'animation revient sur la première image et affiche le badge
et le test qui demande si la movie est finie répond faux; donc
la fenêtre n'est pas fermée.
Il ne faut donc pas mettre la propriété badge
à vraie si on utilise closeonfinish....
Si vous appréciez ce travail, merci de me le dire par
email ou mieux de m'envoyer une carte postale ou un exemple
d'utilisation.
Cette XCMD est gratuite pour toute utilisation non
commerciale.
- Gilles Kuntz
- 11, rue des Trois Epis
- 38100 GRENOBLE FRANCE
- email:
Gilles.Kuntz@imag.fr