Un curseur en couleur dans Director 5
L'Xobjet ColorCursor permet à Director d'exploiter
une ressource de type crsr. Ces ressources définissent
sur le mac un curseur de couleur et ne doivent pas être
confondues à ce titre, avec les ressources de type
CURS qui dotent nos applications de curseurs banals. On
voit sur cette image le fichier de ressources de l'application
Adobe Premiere ouvert grâce à ResEdit. Les
deux types de ressources sont présents.
Si l'on souhaite exploiter grâce à l'Xobjet
ColorCursor une ressource crsr, il convient bien sûr
d'en doter notre animation. La petite flèche bleue
de Premiere me plaît bien. Et si nous l'utilisions ?
La Commande Lingo openResFile permet l'ouverture d'un fichier
de ressources (d'une application par exemple) et sa mise
à la disposition d'un animation. Comme nous ne souhaitons
pas joindre l'application d'Adobe à tous les exemplaire
de notre animation (!!!) il va nous falloir isoler la ressources
que nous voulons utiliser. Pour ce faire deux procédés
: Créer via ResEdit un fichier de ressources nouveau
dans lequel nous copie-collerons la ressources flèche
bleue. Placé à coté de l'animation,
ce fichier ResEdit sera ouvert depuis notre animation par
openResFile. Solution élégante en production
puisqu'elle laisse la possibilité de changer l'aspect
du curseur sans toucher au fichier Director mais pour des
raisons de compacité nous choisirons la deuxième
méthode : copier-coller la ressource directement
dans le fichier de l'animation. Lorsque grâce à
l'xobjet nous demanderons à Director de l'utiliser,
il ne lui faudra pas chercher bien loin.
La manipulation ne prend que quelques secondes : Dans
ResEdit nous ouvrons le fichier de ressources d'Adobe Premiere.
Lorsque nous double-cliquons sur le type crsr notre écran
se présente comme sur l'image plus haut. Nous sélectionnons
alors la ressources identifiée par le numéro
1030 (c'est notre flèche bleue) et nous la plaçons
dans le presse-papiers par Édition/copier.
Sans quitter ResEdit, nous demandons l'ouverture de notre
animation Director "essai.dir". ResEdit risque fort de nous
avertir que ce fichier n'a pas de "ressource fork" (fichier
de ressources) et qu'il va devoir en créer un si
nous insistons. On dit OK et ResEdit ouvre alors le fichier
de ressources vide de notre animation. On colle notre ressource
dedans par Édition/coller. ResEdit crée tout
de suite un type crsr et place la ressource 1030 dedans.
Nous pouvons double-cliquer sur le type crsr pour voir la
ressource ajoutée à l'animation et si nous
double-cliquons sur le ressource cette fois ResEdit ouvre
l'éditeur de ce type de ressources, grâce auquel
nous pouvons modifier notre flèche.
l'éditeur des ressources de type crsr de ResEdit
À noter : nous n'avons pas procédé
à d'éventuelles modifications sur le fichier
de ressources de Premiere ! tout utilisation d'un éditeur
de type dans ResEdit alors qu'un fichier original est ouvert
est périlleuse, rappelons-le, car ResEdit comme la
plupart des gestionnaires de bases de données met
à jour immédiatement les modifications et
seulement en cas de renoncement "DISCARD" restaure les fichiers
originaux d'après une copie en mémoire. Certes
ResEdit est LE logiciel le plus stable de la création
mais l'EDF a sa part dans les plantages possibles !!!
Quittons ResEdit maintenant en enregistrant les modifications
du fichier Director. Veillons à placer colorCursor
aux cotés de notre animation ou tout au moins notons
le chemin qu'il faudra utiliser et lançons Director
afin de mettre notre xobjet au travail.
Toujours on commence par ouvrir la fenêtre message
de Director et l'on s'enquiert des Xchoses disponibles en
saisissant ShowXlib :
showXlib
-- XLibraries:
-- Xtra: QTVRXtra
-- Xtra: ScriptColor
-- Xtra: PrintOMatic_Lite
-- Xtra: NetLingo
-- Xtra: Mui
-- Xtra: fileio
-- "*Standard.xlib"
-- XObject: SerialPort
Id:200
-- XObject: XCMDGlue
Id:2020
Rappelons que la première partie de cette liste,
cite les Xtras disponibles (placés dans le dossier
Xtras au lancement de l'application). Nous ne nous intéressons
qu'aux xobjets : aucun Xobjet externe n'apparaît dans
la deuxième partie, nous allons y remédier
en indiquant à Director le chemin et le nom exacte
de fichier du fragment de code externe que nous voulons
utiliser :
openXlib the moviepath & "ColourCursor-XObj"
Director n'indique pas si l'ouverture de l'Xobjet a réussie.
pour le savoir et connaître le nom véritable
de l'Xobjet, Il nous faut interroger Director un nouvelle
fois :
showxlib
-- XLibraries:
-- Xtra: QTVRXtra
-- Xtra: ScriptColor
-- Xtra: PrintOMatic_Lite
-- Xtra: NetLingo -- Xtra: Mui
-- Xtra: fileio -- "*Standard.xlib"
-- XObject: SerialPort Id:200
-- XObject: XCMDGlue Id:2020
-- "Macintosh HD:Desktop Folder:ColourCursor-XObj"
-- XObject: ColorCursor Id:9015
ColorCursor est désormais utilisable. Mais quelles
sont ses méthodes. Passée à l'objet,
la méthode globale mDescribe fournit la liste des
fonctions disponibles :
put ColorCursor(mdescribe)
-- Factory: ColorCursor ID:9015
-- ColorCursor, and X-Object for using color cursor resources
-- by Chris Perkins 1993. (CPerkins@aol.com)
I mNew
XI mGetSetCursor, crsrID -- crsrID is the resource ID number
of a 'crsr' type resource
X mReleaseCursor -- CALL THIS BEFORE DISPOSING OBJECT or
using the lingo <cursor> routine
----
-- <Null>
Les premières lignes portent mention de l'auteur.
Les lignes suivantes présentent une à une
et de façon conventionnelle, les méthodes
utilisables pour aspeak. Chacune de ces lignes est rédigée
de la même manière :
Le groupe de lettres initiales (capitales souvent) fournit
de indications sur le type que la fonction retourne (premier
caractère) et le type d'arguments qu'elle requiert
(tous les autres).
X indique que la fonction ne retourne aucune valeur
I désigne un entier (ou un booléen)
S une chaîne de caractères entre guillemets
plus rarement on rencontre dans ces listes :
L pour une liste d'entiers ou un entier long
P pour une image
O pour une instance d'objet
V pour un type de donnée variable
Nous devons commencer par créer une instance de
l'objet en utilisant la méthode globale mNew. L'instance
(ou enfant) doit recevoir un nom de baptême nous permettant
de l'invoquer : plus précisément nous
allons utiliser une variable pour nommer celle-ci.
set CRAPO to ColorCursor (mNew)
La méthode mNew est passée à l'Xobjet.
Un objet-enfant est créé qui est stocké
dans la variable CRAPO.
Notre objet CRAPO est maintenant prêt à obéir
à nos instructions. Toujours avec les Xobjets la
structure est la suivante : à l'objet on passe une
méthode et ses arguments entre parenthèses.
Ici il faut indiquer outre le nom de l'enfant le numéro
d'identifiant de la ressource : 1030. Avant de
valider la saisie dans la fenêtre message prenons
la précaution de placer le curseur de souris sur
la scène. Lorsque la souris est au dessus de la fenêtre
message en effet, Director appelle le pointeur d'insertion
standard (ID 1). Évitons-nous une déception
prévisible !
CRAPO(mGetSetCursor, 1030)
Le résultat ne se fait pas attendre, et tant qu'aucune
autre instruction ne viendra changer l'aspect du curseur
(tant que la souris ne survole pas une zone de saisie active
par exemple) notre curseur est parfaitement opérationnel.
Pour changer une nouvelle fois de curseur maintenant, utiliser
plus traditionnellement un acteur 1 bit ou encore un pointeur
système, il semble découler de ce que nous
venons de dire qu'il suffise de donner une nouvelle instruction
en ce sens. Mieux vaut, en fait, prévenir l'enfant
CRAPO de notre décision :
CRAPO(mReleaseCursor)
Puis seulement faire appel à un autre curseur :
cursor 0
Enfin pour se débarrasser de l'objet CRAPO et libérer
la mémoire :
CRAPO(mDispose)
Un vérification n'est jamais inutile. Demandons
si CRAPO n'existe plus.
put crapo
-- Void
L'xobjet ColorCursor est distribué par g/matter
Il est téléchargeable sur le site ftp Sharedcast :
ftp://ftp.sharedcast.com/pub/XObjs/
|