TUTORIEL FLASH 
Tirer profit de la molette de la souris avec Flash
Véritable troisième bouton, la molette est désormais un moyen d'intéraction avec l'animation Flash. Des composants comme NumericStepper permettent notamment de la prendre en charge. (10/02/2005)

Il est possible d'utiliser la molette de la souris (en anglais, mouse wheel) depuis la dernière incarnation de Flash Player, en version 7. Dans les versions précédentes, manipuler la molette signifiait agir sur la barre de défilement de la fenêtre du navigateur, mais désormais il est possible d'agir directement sur un champ textuel, et sur d'autres éléments avec un peu de travail.

Par défaut, le Flash Player autorise le défilement vertical des champs textuels pour toutes les animations Flash (toutes versions, pas seulement celles construites avec MX 2004). En revanche, la version 7 offre au développeur la possibilité d'accéder à un nouvel écouteur pour la classe Mouse, onMouseWheel, et une nouvelle propriété pour la classe Textfield, mouseWheelEnabled.

Utilisation

Le défilement vertical (de haut en bas) dans un champ texte est donc activé. Spécifier l'option Textfield.mouseWheelEnabled = false permet d'annuler ce défilement, mais dans la plupart des cas ce ne sera pas nécessaire, et cette propriété reste cantonnée à quelques projets spécifiques où l'on souhaite gérer le défilement soi-même…

L'écouteur Mouse.onMouseWheel est déjà une option plus intéressante : elle nous permet de capturer l'événement de mouvement de la molette, et de l'appliquer à d'autres mouvements au sein du champ texte, voire à d'autres éléments que le champ texte.

Typiquement, la molette peut être utilisée pour modifier une valeur autre que celle de la barre de défilement. Le plus rapide à mettre en place est le changement de position de n'importe quel élément. Dans l'exemple qui suit, la valeur renvoyée par la molette déplace non plus le texte à l'intérieur du champ, mais le champ lui-même, de gauche à droite.

field.mouseWheelEnabled = false;
souris = new Object();
souris.onMouseWheel = function(valeur) {
  field._height += valeur;
  }
Mouse.addListener(souris);

On peut ici inverser la direction en utilisant l'opérateur -= au lieu de +=.

La molette peut également servir pour faire évoluer les valeurs d'autres composants, par exemple NumericStepper. Placer un NumericStepper sur la scène, nommez-le "num", et modifier le code ci-dessus comme suit :

field.mouseWheelEnabled = false;
souris = new Object();
souris.onMouseWheel = function(valeur) {
  field._height += valeur;
  num.value =+ valeur;
  }
Mouse.addListener(souris);

  Forum

Réagissez dans les forums de JDN Développeurs

Désormais, le mouvement de la souris provoquera à la fois le mouvement horizontal du champ texte (et non de sa barre de defilement), ainse que l'évolution du chiffre affiché par le NumericStepper.

Malheureusement, la valeur renvoyée n'est pas toujours égale à 1, mais plus souvent à 3 - sans compter que le fait de baisser la molette renvoie la valeur 0… Pour parer à cela, il suffit de placer des gardes-fou dans le code :

souris.onMouseWheel = function(valeur) {
  field._x += valeur;
  if (valeur > 0) {
    
num.value += valeur-2;
    }
  if (valeur < 0) {
    
num.value += valeur+2;
    }

  }

Vous pouvez ainsi agir sur les valeurs de nombreux composants et éléments Flash par le biais de la molette, ce qui peut rendre une application Flash beaucoup plus intuitive et ergonomique…

 

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages