Lorsque l'utilisateur appuie sur une touche, ou une combinaison de touches à l'aide des modificateurs ⇧ ⌥ ⌘ ⇪ et ctrl, Smile envoie l'événement suivant au script de la graphic window active :
keydown the_object event the_record
the_object est une référence au possesseur du script, c'est-à-dire la fenêtre graphique active.
the_record peut contenir deux champs : character et modifiers.
- character est un caractère correspondant à la touche sur laquelle a appuyé l'utilisateur, prenant en compte les modificateurs. Par exemple, si l'utilisateur appuie sur ⇧A, character correspondra à "A", et non à "a". Si l'utilisateur appuie sur A, character correspondra à "a".
- modifiers est une liste d'une ou plusieurs des valeurs suivantes : shift down (⇧), option down (⌥), command down (⌘), caps lock down (⇪) et control down (ctrl). Notez bien que ces valeurs sont des mots-clés, et non du texte.
Exemple
L'exemple ci-dessous gère les touches r (pour "reset") et n (pour "new") ; il crée des courbes aléatoires.
on keydown theWindow event theEvent
if modifiers of theEvent is not {} then return
if character of theEvent is not in "rn" then return
if character of theEvent is "r" then
try
set v to plot view 1 of theWindow
delete every curve of v
end try
draw theWindow
return
end if
try
set v to plot view 1 of theWindow
on error
set v to make new plot view at theWindow
end try
set c to make new curve at end of v
set f to random number from 0.0 to 2.0
set formula of c to "" & f & "*sin(x^" & f & ")"
draw theWindow
end keydown
Pour essayer l'exemple précédent, procédez comme suit :
-
Exécutez tout d'abord le script suivant, pour créer une fenêtre graphique.
set w to make new graphic window
-
Sélectionnez Edition ▸ Mode édition puis cliquez tout en appuyant sur ⌘⌥ n'importe où dans la fenêtre. Cela ouvrira le script de la graphic window.
-
Copiez le script précédent, enregistrez et refermez la fenêtre de script à l'aide du menu Fichier, puis repassez la fenêtre en mode utilisation à l'aide de Edition ▸ Mode édition.
Maintenant vous pouvez appuyer sur n pour créer de nouvelles courbes, et sur r pour réinitialiser la fenêtre.
|