Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

255 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   100 Visites
   Note INTERNET : 11
    (2 Votants)
   0 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2006 - Mémoire de fin d'étude
Premiers pas en SVG
[20 mn de lecture - paru le 12/8/2006 12:17:26 AM - Public : Débutant]

Auteur

mikoMickael OHAYON
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2006

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

3 Les animations


Jusqu'à présent nous n'avons produit que des images statiques, une fois construites et affichées elles ne bougent pas. Dans ce chapitre nous allons examiner en détail comment faire bouger des images. L'animation, spécifie des mouvements controlés par l'auteur du code SVG.
Il serait dommage de cacher le message contenu dans le graphique sous une avalanche d'animations qui détournent l'attention de la personne qui visualise le graphique.
Ce chapitre met l'accent sur l'animation c'est pourquoi la plupart des exemples sont presque totalement dénués de contenu intéressant. Nous essayerons néanmoins d'éviter les animations superflues le plus possible.

3.1 Concepts de base

Les capacités d'animation de SVG sont basées sur une spécification du World Wide Web Consortium, Synchronized Multimedia Integration Language Level 2 (SMIL 2). La spécification de SMIL2 se trouve à l'adresse suivante: http://www.w3.org/TR/smil20/. Avec ce système on spécifie les valeurs de début et de fin de l'attribut, de la couleur, du mouvement ou de la transformation qu'on souhaite animer, le moment où l'animation doit commencer et la durée de cette animation. L'exemple 1 montre le code SVG correspondant à une animation simple.

exemple1.JPG

Les valeurs de début et de fin de l'attribut. Dans cet exemple la valeur de début est 200 et la valeur de fin est 20.
La date de début et la durée de l'animation. Dans cet exemple on mesure le temps en secondes grâce à la lettre s après les nombres.
Après l'animation on fige l'attribut à sa valeur de fin. Si on enlevait cette ligne l'attribut retournerait à sa valeur initiale de 200 à la fin de l'animation. L'attribut fill est un attribut SMIL qui décrit comment agir à la fin de l'animation et il ne doit pas être confondu avec l'attribut -fill de SVG qui donne le mode de remplissage d'un objet.

Passons maintenant à un exemple plus ambitieux. Dans l'exemple 2, nous allons faire grossir un carré d'une taille initiale de 20x20 pixels à une taille de 250x200 pixels sur une durée de 8 secondes. Pendant les trois premières secondes l'opacité du carré croît puis elle décroît pendant les 3 secondes suivantes. Notez que fill-opacity est spécifiée avec attributeType="CSS" car elle fait partie du style.

exemple2.JPG

Notre dernier exemple, l'exemple 3 anime un carré et un cercle. Le carré grossit depuis une taille initiale de 20x20 pixels à une taille de 120x120 pixels sur une durée de huit secondes. Deux secondes après le début de l'animation le rayon du cercle commence à grossir de sa taille initiale de 20 pixels jusqu'à une taille de 50 pixels sur une durée de quatre secondes. La figure 1 montre quatre copies d'écran prises à des moments différents de l'animation: zéro seconde quand l'animation commence, deux secondes quand le cercle commence à grossir, six secondes quand le cercle arrête de grossir et enfin huit secondes quand l'animation est terminée.

exemple3.JPG


20.JPG
figure 1

3.2 Mesure du temps

L'horloge interne qui gère l'animation commence à tourner quand le chargement du fichier est terminé et elle s'arrête quand l'utilisateur quitte la page. On peut donner un début ou une durée pour un segment particulier d'animation avec une valeur numérique de trois façons différentes:
•    Un instant complet absolu en heures, minutes et secondes (1:20:23).
•    Un instant partiel en minutes et secondes (2:15).
•    Une valeur de temps suivie par une « métrique » parmi h (heures), min (minutes), s (secondes) ou ms (millisecondes). Par exemple dur="3.5s" begin="1min". On ne doit pas mettre d'espace entre la valeur et la métrique.
On peut aussi lier le début d'une animation au début ou à la fin d'une autre animation. L'exemple 4 montre deux cercles, le deuxième commence à s'agrandir dès que le premier a fini de rétrécir. La figure 2 montre les étapes importantes de l'animation.

exemple4.JPG
21.jpg
Figure 2

Il est également possible d'ajouter un décalage à cette synchronisation. Pour commencer une animation deux secondes après la fin d'une autre il faut utiliser une construction de la forme begin="autreAnim.end+2s" (on peut ajouter des espaces autour du signe +). Le décalage doit être positif car utiliser begin="autreAnim. end-2s" demanderait à l'ordinateur de se placer dans le futur ce qui n'est pas possible. Dans l'exemple 5 le deuxième cercle commence à grossir une seconde 25 après que le premier ait commencé à diminuer.

exemple5.JPG

Maintenant que l'on sait synchroniser des animations on peut introduire l'attribut end qui définit la fin de l'animation. Ca ne remplace pas l'attribut dur ! L'animation suivante commence six secondes après le chargement de la page et dure au moins 12 secondes ou jusqu'à ce que l'animation autreAnim se termine.

exemple6.JPG

Il est possible, bien sûr, de donner un nombre comme valeur de l'attribut end. C'est utile pour stopper une animation en cours pour vérifier que tout se passe bien.  L'animation suivante commence à 6 secondes et devrait durer au moins 12 secondes mais est interrompue après 9 secondes.

exemple7.JPG

3.3 Répétition d'une animation

Les animations que nous avons produites jusqu'à présent ont lieu une seule fois car l'attribut fill est positionné à freeze de façon à figer le dernier état de l'animation. Si on veut que l'objet revienne à son état initial on positionne cet attribut à remove (ou on ne le spécifie pas car c'est sa valeur par défaut).
Deux autres attributs permettent de répéter une animation. Le premier, repeatCount est un entier qui donne le nombre de répétitions d'une animation. Le deuxième, repeatDur donne la durée d'une répétition. Si on veut que l'animation dure jusqu'à ce que l'utilisateur quitte la page on positionne repeatCount ou repeatDur à indefinite. L'animation de l'exemple 8 montre deux cercles. Le cercle du haut se déplace de gauche à droite deux fois de suite de cinq secondes chacune. Le second cercle se déplace droite à gauche sur une durée de 8 secondes.

exemple8.JPG

Exactement comme on peut synchroniser une animation avec le début ou la fin d'une autre animation, on peut lier le début d'une animation avec le début d'une répétition particulière d'une autre animation. On donne un nom à l'animation avec l'attribut id puis on positionne l'attribut begin de la deuxième animation à id.repeat(nombre), dans lequel nombre est un nombre partant de 0 pour indiquer la première repétition. Dans l'exemple 9 le cercle du haut se déplace de gauche à droite trois fois, chaque trajet durant cinq secondes. Le cercle du bas se déplace de droite à gauche une seule fois et son mouvement ne commence qu'au milieu de la deuxième répétion de la première animation grâce à l'utilisation d'un décalage.

exemple9.JPG

3.4 L'élément set

Toutes ces animations font varier des valeurs numériques au cours du temps. On peut aussi vouloir utiliser un attribut non numérique ou une propriété de style. Par exemple on peut vouloir faire apparaître un texte qui n'était pas visible jusqu'à présent, dans ce cas les attributs from et to n'ont pas de sens. L'élément permet d'obtenir cet effet en n'ayant à spécifier que l'attribut à modifier avec to et l'information de durée souhaitée. L'exemple 10 réduit un cercle jusqu'à une taille nulle puis fait apparaître un texte une demi-seconde après que le cercle ait disparu.

exemple10.JPG



Articles de la même catégorie

 Pages : Top


13 Visites
0 Commentaires
Microsoft's Zune
[10 mn de lecture - paru le 11/17/2006 6:40:45 PM - Public : Débutant]

En savoir plus


18 Visites
0 Commentaires
SVG Graphic Format
[10 mn de lecture - paru le 11/17/2006 1:06:00 PM - Public : Débutant]

En savoir plus


27 Visites
0 Commentaires
Le format graphique SVG
[10 mn de lecture - paru le 11/15/2006 7:18:43 PM - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation ...

   Devenez Ingénieur Système Microsoft en 35 jours avec SUPINFO Training Center
   Devenez Certifiés Cisco en 13 jours avec SUPINFO Training Center
   Devenez Administrateur Système Microsoft avec SUPINFO Training Center
   Devenez Développeur Microsoft .NET en 13 jours avec SUPINFO Training Center



Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :