Animation SVG XML:Animation de base: l'élément animate

Un article de WikiTuto.

Jump to: navigation, search
  • XML Concepts de base
  1. Historique : de SGML à XML
  2. XML:Mise en oeuvre
  3. Structure d'un document XML
  4. Support par les navigateurs
  • Prise en main d'XML CookTop
  1. XML CookTop généralités
  2. Interface
  3. Exercices
  • Prise en main d'oXygen XML Editor
  1. Généralités
  2. Interface
  3. Fonctionnalités
  4. Exercices
  • Déclarations de Type de Document
  1. Introduction
  2. Types de DTD
  3. Déclarations d'éléments
  4. Déclarations d'attributs
  5. Déclarations d'entités
  • Initiation aux Schéma XML
  1. Introduction
  2. Les premiers pas
  3. Déclarations d'éléments et d'attributs
  4. Les types de données
  5. Espaces de nom
  6. Les dérivations
  7. Diverses autres fonctionnalités
  • Mise en forme à l'aide de feuilles de style XSL
  1. Présentation
  2. Exemples de mises en forme
  • Mise en forme à l'aide de feuilles de style XSL (XSLT)
  1. Les expressions de sélection
  2. XPath
  3. Éléments XSLT
  • Fonctions XPath
  1. Fonctions XPath applicables aux nœuds
  2. Fonctions XPath applicables aux chaînes de caractèress
  3. Fonctions XPath applicables aux nombres
  4. Fonctions booléennes
  5. Autres fonctions
  • Utilisation du DOM et XSLT dynamique
  1. Insertion de code JavaScript dans une page
  2. Utilisation du DOM
  • Synchroniser des contenus multimédia avec SMIL
  1. Généralités
  2. Construction progressive d'un fichier SMIL
  3. Conclusion
  • Un format de dessin vectoriel en XML: SVG
  1. Introduction
  2. SVG de base
  3. Éléments graphiques de base
  4. Structuration: éléments de groupage et références
  5. Transformations
  6. Autres fonctionnalités
  • L'animation dans le SVG
  1. Introduction
  2. Animation de base: l'élément animate
  3. Des animations plus complexes
  • Plus loin que les formulaires HTML: XForms
  1. Généralités
  2. Fonctionnalités des formulaires XForms
  3. Dans la pratique
  4. Pour aller plus loin...
  • Quelques mots sur les Services Web
  1. Généralités
  2. Trouver un service Web
  3. Accéder à un service Web
  4. Récapitulation et inconvénients
Source : Gilles Chagnon

Sommaire

Création du graphique de base

Avant d'animer un graphique, encore faut-il l'avoir écrit. Nous allons donc créer un petit cube à l'aide d'une définition.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE svg SYSTEM "svg10.dtd">
<svg width="500" height="500" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <symbol id="cube" stroke="black" stroke-line-join="bevel" stroke-width="2">
      <rect width="100" height="100" fill="#ccc" x="1" y="42" />
      <polygon points="1,42 42,1 142,1 101,42 1,42" stroke-width="2" fill="#999" />
      <polygon points="101,42 142,1 142,101 101,142 101,42" fill="#666" />
    </symbol>
  </defs>
  <use xlink:href="#cube" x="150" y="150" />
</svg>

Ce fichier va nous servir de base.

Exercice 1. Création du graphique de base

Un premier effet

Modification d'un attribut

Nous allons commencer par quelque chose de simple en nous contentant de faire monter et descendre notre joli cube. L'attribut servant à gérer cette position vertical est l'attribut y. Nous allons donc travailler dessus, en l'animant à l'aide de l'élément... <animate>. Analysons l'exemple ci-dessous...

<use xlink:href="#cube" x="150" y="150">
  <animate attributeName="y" dur="2s" values="150; 140; 130; 120; 110; 100; 110; 120; 130; 140; 150" />
</use>

Comme nous pouvons le constater sur l'exemple, le cube monte et descend. L'opération se fait en ajoutant un élément-enfant <animate> à l'élément qu'il faut animer. L'attribut attributeName permet de sélectionner l'attribut sur lequel va porter l'animation. N'importe quel attribut peut être modifié, à l'exception toutefois de l'attribut transform, dont la syntaxe de modification est légèrement différente.

Il est possible de faire des boucles (utilisation de l'attribut repeatCount), de commencer ou finir à des instants déterminés (attributs begin ou end), mais aussi de synchroniser différentes animations. Nous verrons cela par la suite.

Dans ce cas simple, nous avons utilisé l'attribut dur, qui fixe la durée de l'animation. Par défaut, cette dernière commence au chargement du fichier. Ici, elle dure 2 secondes.

L'attribut values donne la liste de... valeurs par lesquelles passe l'attribut spécifié par attributeName. Par défaut, un lecteur SVG doit réaliser une interpolation linéaire entre chacune de ces valeurs, mais il est possible de changer ce comportement par défaut.

Utilisation de la souris

Il est facile d'insérer un comportement lié à la souris. Par exemple, begin="mouseover" déclenche l'animation dès que l'on survole l'élément par la souris. Nous allons plutôt créer un petit bouton, afin de tester ce genre de comportement. Il suffit pour cela de caser dans un coin un rectangle, que l'on identifie par un id="bouton", par exemple, et d'écrire dans notre élément <animate> un begin="bouton.click", pour obtenir l'effet voulu.

Un peu plus de contrôle

Attributs from et to

Ces deux attributs permettent de ne pas avoir à spécifier une liste de valeurs, dans le cas (comme dans notre exemple) où celles-ci sont régulièrement réparties. Quand on les spécifie, le lecteur SVG réalise une interpolation linéaire entre ces deux valeurs. On peut par exemple ajouter <animate attributeName="x" dur="3s" from="150" to="100"/> à l'animation précédente pour modifier également la position horizontale.

Figer une animation

Dans l'exemple précédent, l'animation, après s'être exécutée, revenait à son état initial. Ce n'est parfois pas l'effet désiré. Pour figer l'animation dans son état final, on utilise l'attribut fill, avec la valeur freeze (geler, en anglais). On obtient ainsi le résultat visible sur suivant...

Répéter une animation

On peut également demander à ce qu'une animation se répète un nombre déterminé de fois, à l'aide de l'attribut repeatCount. Cet attribut peut prendre comme valeur un nombre entier, ou bien indefinite, qui permet de boucler à l'infini. Il permet d'obtenir une animation bouclée.


Un autre exemple, plus fouillé, de ce genre d'animation nous montre cette fois-ci une collection de cubes...

Exercice 1. Animation de base

Sources

Gilles Chagnon

Voir aussi

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire