Easy-Micro

ESPACEMEMBRE ActionScript
Le rideau

Déplacement dynamique (et linéaire) d'un clip

Pour déplacer un clip de facon dynamique, il suffit, dans une boucle, d'incrémenter une valeur correspondant a sa position. On utilise, pour cela, la propriétée "x" ou "y" qui renvoie la position du clip. Exemple:

Exemple de déplacement (AS3)
// Un clip nommé monclip sur la scène, code à coller sur la 1ère image clé du scénario

function bouge(evt:Event):void {
// Interpolation de mouvement par le code
monclip.x = monclip.x + 5;
}

addEventListener(Event.ENTER_FRAME,bouge);

Même exemple de déplacement mais en AS2
// Un clip nommé monclip sur la scène, code à coller sur la 1ère image clé du scénario
monclip.onEnterFrame = function() { this._x = this._x + 5; }

L'exemple du rideau
Un rideau est un clip (un rectangle) qui se déplace dynamiquement de haut en bas sur la scène. Attention: le centre de votre clip qui contient le graphique rideau (soit la croix), doit-être en 0,0 (en haut à gauche et non pas au milieu).

Le rideau descend (AS3)
// Un clip nommé rideau haut dessus de la scène.

function rideaudescend(evt:Event):void {
rideau.y = rideau.y + 5;
}
addEventListener(Event.ENTER_FRAME,rideaudescend);


Même exemple avec un arrêt en bas (via un if qui supprime la boucle):
Le rideau descend et s'arrête (AS3)
// Un clip nommé rideau haut dessus de la scène.

function rideaudescend(evt:Event):void {
rideau.y = rideau.y + 5;
// - vitesse (pour annuler le décallage à l'arrivée)
if(rideau.y >= 0 - vitesse) { this.removeEventListener(Event.ENTER_FRAME,rideaudescend); }
}
addEventListener(Event.ENTER_FRAME,rideaudescend);


Même exemple avec accélération (via une variable "vitesse"):
Accélération du rideau (AS3)
// Un clip nommé rideau haut dessus de la scène.
// Code à coller sur la 1ère image clé du scénario.

var vitesse:Number = 0;
function rideaudescend(evt:Event):void {
vitesse += 0.5;
rideau.y += vitesse;
if(rideau.y >= 0) { this.removeEventListener(Event.ENTER_FRAME,rideaudescend); }
}
addEventListener(Event.ENTER_FRAME,rideaudescend);


Ralentissement du rideau (AS3)
// Déplacement linéaire avec ralentissement

var vitesse:Number = 50; // type Number pour les décimaux

function rideaudescend(evt:Event):void {
vitesse -= 0.3;
rideau.y += vitesse;
// arret
if( (vitesse <= 0) || (rideau.y >= 0) ) { this.removeEventListener(Event.ENTER_FRAME,rideaudescend); }
}
addEventListener(Event.ENTER_FRAME,rideaudescend);



< Page précédente ACTIONSCRIPT Page suivante >