Le langage ActionScript > Structure des scripts

 

Structure des scripts

Dans l'exemple d'animation zapper.swf, la coccinelle tombe et la prise tremble lorsque l'utilisateur fait glisser la coccinelle vers la prise. Le scénario principal ne comprend qu'une image et contient trois objets : la coccinelle , la prise et un bouton de réinitialisation.Chacun de ces objets est une occurrence de clip.

L'animation contient un script associé à l'occurrence bug, comme dans le panneau Actions ci-dessous :

Le panneau Actions avec le script associé à l'occurrence bug
 

Le nom de l'occurrence de coccinelle est bug et le nom de l'occurrence de prise est zapper. Dans le script, la référence à la coccinelle est this, car le script est associé à la coccinelle et le mot réservé this désigne l'objet qui le contient.

Il existe deux gestionnaires onClipEvent avec deux événements différents : load et enterFrame. Les actions contenues dans l'instruction onClipEvent(load) sont exécutées une seule fois, au chargement de l'animation. Les actions contenues dans l'instruction onClipEvent(enterFrame) sont exécutées à chaque fois que la tête de lecture entre dans une image. Même dans une animation composée d'une seule image, la tête de lecture entre plusieurs fois dans cette image et le script est exécutée à plusieurs reprises. Les actions suivantes se déroulent à l'intérieur de chaque gestionnaire onClipEvent :

onClipEvent(load) Deux variables, initx et inity, sont définies de manière à stocker les positions x et y initiales de l'occurrence de clip bug. Une fonction est définie et affectée à l'événement onRelease de l'occurrence Reset. Cette fonction est appelée à chaque clic sur le bouton de réinitialisation. La fonction replace la coccinelle en position de départ sur la scène, réinitialise ses valeurs alpha et de rotation, et rend à la variable zapped la valeur false.

onClipEvent(enterFrame) Une instruction conditionnelle if utilise la méthode hitTest pour vérifier si l'occurrence de la coccinelle touche l'occurrence de la prise (_root.zapper). Cette évaluation peut avoir deux types de résultats, true ou false :

onClipEvent(load) {
	initx = _x;
	inity = _y;
	_root.Reset.onRelease = function() {
		zapped = false;
		_x = initx;
		_y = inity;
		_alpha = 100
		_rotation = 0;
	};
} 

Si la méthode hitTest renvoie true, la méthode stopDrag est appelée, la variable zapper est fixée à true, les propriétés alpha et rotation sont modifiées, et l'exécution de l'occurrence zapped est lancée.

Si la méthode hitTest renvoie false, le code placé entre {} qui suit immédiatement l'instruction if n'est pas exécuté.

Deux gestionnaires on sont associés à l'occurrence bug avec deux événements différents : press et release. Les actions de l'instruction on(press) sont exécutées après l'enfoncement du bouton de la souris au-dessus de l'occurrence bug. Les actions de l'instruction on(release) sont exécutées après le relâchement du bouton de la souris au-dessus de l'occurrence bug. Les actions suivantes se déroulent à l'intérieur de chaque gestionnaire onClipEvent :

on (press) Une action startDrag rend la coccinelle déplaçable. Le script étant associé à l'occurrence bug, le mot-clé this indique que c'est l'occurrence bug qui peut être déplacée :

on (press) {
	this.startDrag();
}

on (release) Une action stopDrag arrête l'action de déplacement :

on (release) {
	stopDrag();
}