ActionScriptLa courbe
Principe du déplacement en courbe
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);
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);
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);
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);
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);
var monx:Number = Math.random()*10;
function bouge(evt:Event):void {
balle.x += monx;
balle.y += monx;
}
this.addEventListener(Event.ENTER_FRAME,bouge);



