ActionScript 3 – Programmation séquentielle et orientée objet
62
Nous vous rappelons, dans cet exemple, comment détecter un clic sur une occurrence :
function tournerRoue (evt:MouseEvent) {
trace("Vous venez de cliquer sur l'occurrence intitulée btDeclencheur");
}
btDeclencheur.addEventListener(MouseEvent.CLICK,tournerRoue);
Consultez l’exemple proposé dans la section Utiliser les informations stockées dans la
variable locale de la fonction de rappel, un peu avant dans ce chapitre, pour découvrir un
exemple qui met en évidence la subtile différence entre un MOUSE_DOWN et un MOUSE_UP.
Détecter un double-clic sur une occurrence
Fichier de référence : Chapitre3/evenement3.fla
Le script est le même que dans le cas d’un simple clic sur une occurrence, mais l’utilisation d’un nouvel événement n’est pas le seul changement. Vous devez ajouter la propriété
doubleClickEnabled et la régler sur true. Dans le cas contraire, le double-clic ne sera pas
reconnu, mais il sera interprété comme des événements MOUSE_DOWN et MOUSE_UP.
function changerTaille (evt:MouseEvent) {
roue_inst.scaleX=roue_inst.scaleY=Math.random();
}
roue_inst.addEventListener(MouseEvent.DOUBLE_CLICK,changerTaille);
roue_inst.doubleClickEnabled = true;
Détecter le clic sur la scène
Fichier de référence : Chapitre3/evenement4.fla
Dans certains cas, vous aurez besoin de détecter le clic effectué en dehors de toute occurrence, c’est-à-dire sur la scène. Vous pourrez utiliser les propriétés évoquées jusqu’à
présent (MOUSE_UP, MOUSE_DOWN, CLICK), mais la cible à laquelle est rattachée la méthode
addEventListener() est la scène qui se traduit par le terme stage. Dans l’exemple ci-dessous,
nous souhaitons connaître les coordonnées X et Y de l’emplacement du clic afin, par
exemple, d’y placer dynamiquement un symbole.
function indiquerCoordonneesSouris(evt:MouseEvent) {
trace(mouseX+" - "+mouseY);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN,indiquerCoordonneesSouris);
ou encore,
function indiquerCoordonneesSouris(evt:MouseEvent) {
roue_inst.x=mouseX;
roue_inst.y=mouseY;
}
stage.addEventListener(MouseEvent.MOUSE_DOWN,indiquerCoordonneesSouris);
62
Nous vous rappelons, dans cet exemple, comment détecter un clic sur une occurrence :
function tournerRoue (evt:MouseEvent) {
trace("Vous venez de cliquer sur l'occurrence intitulée btDeclencheur");
}
btDeclencheur.addEventListener(MouseEvent.CLICK,tournerRoue);
Consultez l’exemple proposé dans la section Utiliser les informations stockées dans la
variable locale de la fonction de rappel, un peu avant dans ce chapitre, pour découvrir un
exemple qui met en évidence la subtile différence entre un MOUSE_DOWN et un MOUSE_UP.
Détecter un double-clic sur une occurrence
Fichier de référence : Chapitre3/evenement3.fla
Le script est le même que dans le cas d’un simple clic sur une occurrence, mais l’utilisation d’un nouvel événement n’est pas le seul changement. Vous devez ajouter la propriété
doubleClickEnabled et la régler sur true. Dans le cas contraire, le double-clic ne sera pas
reconnu, mais il sera interprété comme des événements MOUSE_DOWN et MOUSE_UP.
function changerTaille (evt:MouseEvent) {
roue_inst.scaleX=roue_inst.scaleY=Math.random();
}
roue_inst.addEventListener(MouseEvent.DOUBLE_CLICK,changerTaille);
roue_inst.doubleClickEnabled = true;
Détecter le clic sur la scène
Fichier de référence : Chapitre3/evenement4.fla
Dans certains cas, vous aurez besoin de détecter le clic effectué en dehors de toute occurrence, c’est-à-dire sur la scène. Vous pourrez utiliser les propriétés évoquées jusqu’à
présent (MOUSE_UP, MOUSE_DOWN, CLICK), mais la cible à laquelle est rattachée la méthode
addEventListener() est la scène qui se traduit par le terme stage. Dans l’exemple ci-dessous,
nous souhaitons connaître les coordonnées X et Y de l’emplacement du clic afin, par
exemple, d’y placer dynamiquement un symbole.
function indiquerCoordonneesSouris(evt:MouseEvent) {
trace(mouseX+" - "+mouseY);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN,indiquerCoordonneesSouris);
ou encore,
function indiquerCoordonneesSouris(evt:MouseEvent) {
roue_inst.x=mouseX;
roue_inst.y=mouseY;
}
stage.addEventListener(MouseEvent.MOUSE_DOWN,indiquerCoordonneesSouris);
