Easy-Micro

ESPACEMEMBRE ActionScript
La courbe

Principe du déplacement en courbe

Le déplacement en courbe est réalisé avec les méthodes de l'objet Math, cos() (pour l'axe des x) et sin() (pour l'axe des y).

Elles permettent d'obtenir des valeurs régulières utilisées pour le calcul de la courbe. Exemple:

Exemple d'une balle qui oscille sur un axe (AS3)
Un clip "balle" sur la scène, code à coller dans la première image clé du scénario

var i:Number = 0; // Déclaration d'une variable i de type Number

function bouge(evt:Event):void {
i += 0.1; // pour faire varier l'amplitude de l'oscillation
balle.x ++;
balle.y = 200 + (Math.sin(i)*50); // 200 est la position en y et 50 est le rayon
}

addEventListener(Event.ENTER_FRAME,bouge);

La position d'une occurence de clip qui tourne est relative aux valeurs obtenues avec les calculs sinus et cosinus d'une même valeur.

En AS2 cela donnerai:
code à coller dans la première image clé du scénario
i = 0;
this.onEnterFrame = function() {
i += 0.1;
balle._x ++;
balle._y = 200 + (Math.sin(i)*50);
}

Faire tourner la balle sur son axe (AS3)
Un clip "balle" sur la scène, code à coller dans la première image clé du scénario

var i:Number = 0;

function bouge(evt:Event):void {
i += 0.1; // pour faire varier l'amplitude de l'oscillation
balle.x = 200 + (Math.cos(i)*50);
balle.y = 200 + (Math.sin(i)*50);
}
addEventListener(Event.ENTER_FRAME,bouge);


Exemple (une double paire de symbole graphique + clip):


Petit plus AS3 :
• Réduire le nombre d'image par seconde (ips) à 1 pour reproduire un mouvement d'horloge.
• Rajouter un bouton d'arrêt en AS3:
function stopLe(evt:Event):void {
this.removeEventListener(Event.ENTER_FRAME,bouge); }
monbouton.addEventListener(MouseEvent.CLICK, stopLe);


En AS2 cela donnerai:
i = 0;
this.onEnterFrame = function() {
i += 0.1;
balle._x = 200 + (Math.cos(i)*50);
balle._y = 200 + (Math.sin(i)*50);
}
Un bouton d'arrêt en AS2: monbouton.onPress = function() { delete _root.onEnterFrame; }

Autre petit plus AS3:
Pour faire tourner une aiguille sur son axe (comme une horloge), dessinez un clip représentant une aiguille dont le bas est sur la croix du clip. Saisissez ensuite ce code:
Une horloge (AS3) (voir l'exemple de la girouette)
Réalisez un clip (aiguille) qui ressemble à une flêche dont le bas est positionné sur le centre du clip (la croix)

function tourne(evt:Event):void {
aiguille.rotation += 10;
}
this.addEventListener(Event.ENTER_FRAME,tourne);

En AS2 cela donnerai : onEnterFrame = function() { aiguille._rotation += 10; }

Faire tourner la balle sur son axe ou qu'elle soit (AS3)

var p1:Number = balle.x;
var p2:Number = balle.y;
var i:uint = 0;

function tourne(evt:Event):void {
i += 0.1
balle.x = p1 + (Math.cos(i) * 50) ;
balle.y = p2 + (Math.sin(i) * 50) ;
}
this.addEventListener(Event.ENTER_FRAME,tourne);

Déplacement aléatoire (AS3)

var monx:Number = Math.random()*10;

function bouge(evt:Event):void {
balle.x += monx;
balle.y += monx;
}

this.addEventListener(Event.ENTER_FRAME,bouge);


< Page précédente ACTIONSCRIPT Page suivante >