Outils pour utilisateurs

Outils du site


cours2009:multimedia:horloge_bis

Horloge (bis)

Ce TP est la suite du précédent. Inutile de finir le TP précédant ; le reprendre où vous l'avez laissé.

Animation par le code

Dans un Symbole

Animer les aiguilles par le code si ce n'est déjà fait. Avec une seule différence, place l'horloge (et son code) dans un symbole nommé ”Horloge”.

Valider le bon fonctionnement en plaçant deux occurrences (de position et taille différentes) sur la scène.

Modifications basiques

  • Modifier l'animation des Heures pour qu'elle tienne compte des Minutes.
  • Faire de même pour l'animation des Minutes, elle doit tenir comptes des secondes.

Optionnel

Ne le faire que si vous êtes en avance sur le TP.

Utiliser un ''Timer''

var t:Timer = new Timer(1000);
t.addEventListener(TimerEvent.TIMER,bougeSeconde);
t.start();
 
function bougeSeconde(e:Event) {
  // ...
}

Animation de la trotteuse

Ajouter une interpolation de mouvement pour le rebond de la trotteuse.

Demander de l'aide si vous n'obtenez pas le résultat escompté.

Fin de la partie optionnelle.

Dessin par le code

Exemple

Enlever le dessin du fond de l'horloge et le remplacer par un symbole où vous placerez le code suivant :

traceCercles();
traceMinutes();
traceHeures();
 
function traceCercles():void {
  var g:Graphics = this.graphics;
 
  g.lineStyle(1,0x000000);
  g.drawCircle(0,0,178);
  g.drawCircle(0,0,186);
}
 
function traceMinutes():void {
  // A compléter...
 
}
 
function traceHeures():void {
  var rad,heure:Number;
  var p0,p1,p2,p0t,p1t,p2t:Point;
  var mat:Matrix;
 
  var g:Graphics = this.graphics;
  g.lineStyle();
 
  for (heure = 1; heure<=12; heure++) {
    rad = -Math.PI/2 + heure/12*2*Math.PI;
    mat = new Matrix();
    mat.rotate(rad);
    p0 = new Point(178,0);
    p1 = new Point(186, (186-178)/2);
    p2 = new Point(186, -(186-178)/2);
    p0t = mat.transformPoint(p0);
    p1t = mat.transformPoint(p1);
    p2t = mat.transformPoint(p2);
    g.beginFill(0x000000);
    g.moveTo(p0t.x, p0t.y);
    g.lineTo(p1t.x, p1t.y);
    g.lineTo(p2t.x, p2t.y);
    g.lineTo(p0t.x, p0t.y);
    g.endFill();
  }
}

Travail

  • Ajouter des commentaires à chaque ligne de code (au minimum la fonction traceCercles).
  • Complétez la fonction traceMinutes (si possible, tester deux façons) :
    • Avec les fonctions Math.sin et Math.cos.
    • Avec la méthode Point.polar.
  • Remplacer les valeurs 178 et 186 par des variables.
cours2009/multimedia/horloge_bis.txt · Dernière modification: 2010/02/27 23:00 (modification externe)