Rotation
Propriété rotation
Principe de la girouette (propriétés rotation et mouseX)
De nombreux scripts utilisent la propriété rotation. Cette dernière associée à la propriété mouseX (position de la souris en x) permet d'interagir avec l'utilisateur.
Réalisation
1 - Faire un clip qui ressemble à une girouette
2 - Mettre le clip sur la scène
3 - Saisissez ce script dans la première image clé du scénario:
Exemple en ActionScript 3
function bouge(evt:Event):void {
girouette.rotation += girouette.mouseX/10;
}
this.addEventListener(Event.ENTER_FRAME,bouge);
function bouge(evt:Event):void {
girouette.rotation += girouette.mouseX/10;
}
this.addEventListener(Event.ENTER_FRAME,bouge);
Note: le code this.rotation += this.mouseX/10; peut être traduit par this._rotation = this.rotation + this.mouseX/10; On divise ici la propriété mouseX par 10 afin de ralentir l'effet de rotation.
Petit plus pour le fun, copier/coller ce clip plusieurs fois sur la scène.
Autre exemple: faire tourner indéfiniment la girouette (AS3)
this.rotation += 5;
Remarque: la rotation d'un clip est fixé sur le centre du clip (la croix). Donc si le clip à son centre en bas, cela donne l'effet d'un point fixe.
Pour aller plus loin: Insérez dans la scène une zone de texte dynamique (texte classique : texte dynamique). Nommée-là "coordonnees".
Affichage des coordonnées de la souris (par rapport à la scène) en AS3
// déclaration d'une variable
var chiffre = 0;
// initialisation de la zone de texte "coordonnees"
coordonnees.text = "Coordonnées souris";
function bouge(evt:Event):void {
girouette.rotation += girouette.mouseX/10;
// récupération des coordonnées de la souris par rapport à la scène
chiffre = this.mouseX;
coordonnees.text = chiffre; // affichage
}
this.addEventListener(Event.ENTER_FRAME,bouge)
// déclaration d'une variable
var chiffre = 0;
// initialisation de la zone de texte "coordonnees"
coordonnees.text = "Coordonnées souris";
function bouge(evt:Event):void {
girouette.rotation += girouette.mouseX/10;
// récupération des coordonnées de la souris par rapport à la scène
chiffre = this.mouseX;
coordonnees.text = chiffre; // affichage
}
this.addEventListener(Event.ENTER_FRAME,bouge)
HORLOGE (propriété rotation)
3 clips représentant 3 aiguilles (heures_mc, minutes_mc, secondes_mc) dans un clip HORLOGE_MC qui contien - en plus - un calque avec un cadran. Le clip HORLOGE_MC est sur la scène. Chacun de ses 3 clips à son centre de gravité en bas (croix du clip en bas du dessin). La vitesse de lecture du FLA est ramenée à 1/ips.
// HORLOGE (AS3)
function monhorloge(evt) {
var _lesheures = new Date();
if (_lesheures.getHours() > 12) {
var _heure = (_lesheures.getHours() - 12) / 12;
}
else {
_heure = _lesheures.getHours() / 12;
}
var _minutes = _lesheures.getMinutes() / 60;
var _secondes = (_lesheures.getSeconds() + _lesheures.getMilliseconds() / 1000) / 60;
horloge_mc.heures_mc.rotation = _heure * 360 + _minutes * 30;
horloge_mc.minutes_mc.rotation = _minutes * 360 + _secondes * 6;
horloge_mc.secondes_mc.rotation = _secondes * 360;
}
addEventListener(Event.ENTER_FRAME,monhorloge);
// Script réalisé en coopération avec Hervé Destainville (Juillet 2010)
function monhorloge(evt) {
var _lesheures = new Date();
if (_lesheures.getHours() > 12) {
var _heure = (_lesheures.getHours() - 12) / 12;
}
else {
_heure = _lesheures.getHours() / 12;
}
var _minutes = _lesheures.getMinutes() / 60;
var _secondes = (_lesheures.getSeconds() + _lesheures.getMilliseconds() / 1000) / 60;
horloge_mc.heures_mc.rotation = _heure * 360 + _minutes * 30;
horloge_mc.minutes_mc.rotation = _minutes * 360 + _secondes * 6;
horloge_mc.secondes_mc.rotation = _secondes * 360;
}
addEventListener(Event.ENTER_FRAME,monhorloge);
// Script réalisé en coopération avec Hervé Destainville (Juillet 2010)