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/
<
Sommaire
|