Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Les interrupteurs

Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.Par monsieur_spi (Monsieur Spi), le 21 janvier 2010

Beaucoup de débutants sont en difficulté lorsqu’il s’agit d’affecter deux actions à un même bouton, comme « play » et « stop » par exemple. On parle alors de « bouton interrupteur » tout simplement parce que le fonctionnement est identique à un interrupteur (off/on). Et vous allez voir que le principe est en fait tout bête avec un tout petit peu de réflexion.

On veut que le bouton déclenche une action spécifique en fonction d’une valeur dite booléenne (vrai ou faux).
On commence donc par créer une variable « booléenne » :

var lecture:Boolean=true;

Ici par défaut on va dire que la lecture est active donc “true”.

Ensuite on va créer un écouteur pour le bouton :

monBouton.addEventListener(MouseEvent.MOUSE_DOWN, jouer)

Et enfin on crée une fonction qui a pour rôle d’arrêter la lecture lorsqu'elle est en cours et de la relancer lorsqu’elle est à l’arrêt.

function jouer (e:MouseEvent){
 
    lecture=!lecture; // interrupteur
 
    if (lecture){
        play();
    } else {
        stop();
    }
}

La première chose que fait cette fonction c’est de modifier la valeur de la variable booléenne.

lecture=!lecture;

On peut traduire cette ligne par : lecture prend la valeur inverse de lecture.
Si elle est « true » elle passe « false » et inversement, c’est notre interrupteur.

Le reste la fonction est simple à comprendre, si l’interrupteur est allumé on joue l’animation sinon on la stoppe.

C'est une astuce toute bête mais à laquelle on pense rarement de soit même lorsqu'on débute ;-)