-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="../SVGAnimation.js"></script>
<script type="text/javascript" src="../SVGPlayerOne.js"></script>
<script type="text/javascript">
var player = new Controle(anim);
player.connect();
}
+ function charge_anim2() {
+ var a = new Animation('anim2','../ellipsographe/svg/ellipsographe-',1,91);
+ a.loopOnload();
+ var b = new Controle(a);
+ b.connect();
+ }
$(window).load(function() {
anim = new Animation('XXXX','../ellipsographe/svg/ellipsographe-',1,91);
anim.loopOnload();
s'agit
d'éviter de charger toutes les animations présentes sur cette page,
cela serait bien trop lourd.</p>
-<p>Nous présentons, dans la section XX, le code qui permet de charger
-l'animation sur demande.</p>
+<p>Nous présentons, dans la section <a
+href="#chargement-différé">Chargement différé</a>, le code qui permet de
+charger l'animation sur demande.</p>
</div>
## Installation
### La famille d'images
Les différentes images composant l'animation doivent se nommer avec un
-*prefixe* puis d'un nombre (indice), celui-ci pouvant être
+*prefixe* suivi d'un nombre (indice), celui-ci pouvant être
formater de différente façons :
monfichier-1.svg monfichier-2.svg monfichier-3.svg ...
`Animation`. Pour l'utiliser il faut déclarer une balise HTML `div`
avec un identifiant (`id`) unique. Choisissons pour l'exemple `XXXX`.
À l'intérieur de ces balises, il
-faut :
+faut :
+
* une balise `img` contenant un image `svg` qui servira de vignette à
l'animation;
* une balise `div` avec l'identifiant `id="XXXX_message"` où `XXXX` est
l'identifiant de la balise englobante. Dans cette balise *message*,
on y met, si on le souhaite, un message à afficher avant le
- chargement de l'animation.
-* une balise `div` avec l'identifiant `id="XXXX_boutons"`
+ chargement de l'animation;
+* une balise `div` avec l'identifiant `id="XXXX_boutons"`.
En supposant que les images SVG se trouvent dans un répertoire nommé
### Côté JavaScript
Une fois qu'on a la structure HTML présentée ci-dessus, il est
-nécessaire d'ajouter un peu de code JavaScript permettre à l'animation
+nécessaire d'ajouter un peu de code JavaScript pour permettre à l'animation
de se jouer.
#### Construire l'objet `Animation`
`anim.loopOnload()` permet le chargement de l'animation.
-Une fois celle-ci chargé, il faut en permettre la lecture qui se fait
+Une fois celle-ci chargée, il faut en permettre la lecture qui se fait
grâce à un nouvel objet nommé `Controle`. Ce contrôle s'utilise en
fait comme ceci :
</div>
~~~~~~~
-dont le résultat est :
+dont l'affichage est :
<div id="XXXX">
<img src="../ellipsographe/svg/ellipsographe-1.svg" alt="animation1"/>
</div>
+#### Chargement différé
+
+On peut laisser le chargement d'une animation à la demande en créant une
+fonction Javascript.
+
+~~~~~~~ { .javascript }
+function charge_anim2() {
+ var a = new Animation('anim2','svg/ellipsographe-',1,91);
+ a.loopOnload();
+ var b = new Controle(a);
+ b.connect();
+}
+~~~~~~~
+
+Fonction qui sera liée à l'*événement* `onclick` d'un bouton proposant
+justement le chargement de l'animation...
-<div id="anim2" style="margin:10px auto;padding:10px;width:350px;border:2px solid #AAA;border-radius:4px">
+~~~~~~~ { .html }
+<div id="anim2"
+ style="margin:10px auto;padding:10px;width:354px;border:2px solid #AAA;border-radius:4px">
+ <img src="../ellipsographe/svg/ellipsographe-1.svg" alt="animation1" style="width:330px;height:240px"/>
+ <div class="message" id="anim2_message">Ellipsographe</div>
+ <div id="anim2_boutons"><button onclick="charge_anim2();">Charger l'animation</button></div>
+</div>
+~~~~~~~
+
+Dans le même temps, le *style* des éléments englobants a été adapté.
+
+<div id="anim2" style="margin:10px auto;padding:10px;width:354px;border:2px solid #AAA;border-radius:4px">
<img src="../ellipsographe/svg/ellipsographe-1.svg" alt="animation1" style="width:330px;height:240px"/>
<div class="message" id="anim2_message">Ellipsographe</div>
- <div id="anim2_boutons"><button onclick="charge('anim2','../ellipsographe/svg/ellipsographe-',1,91);">Charger l'animation</button></div>
+ <div id="anim2_boutons"><button onclick="charge_anim2()">Charger l'animation</button></div>
</div>
+
### Les paramètres
+L'objet `Animation` ne possède que deux propriétés configurables, autres
+que celles (4) qui lui sont passées en argument.
+
+• **delai** *(valeur par défaut : 50)* — C'est la durée, en millisecondes, entre deux images.
+
+~~~{.javascript}
+var a = new Animation('anim','svg/pre',1,100);
+a.delai = 200;
+a.loopOnload();
+~~~
+Ceci fixera le défilement à 5 images/s. Un *player* comme ceux que nous vous proposons ci-dessus peut
+modifier cette valeur.
+
+• **pad** *(valeur par défaut : 0)* — Ce paramètre n'a d'effet
+que s'il est supérieur ou égal à 2, il permet de fixer la longueur des
+index des images en complétant avec des 0.
+
+~~~{.javascript}
+var a = new Animation('anim','svg/pre',1,100);
+a.pad = 3;
+a.loopOnload();
+~~~
+Les images chargées seront, successivement, `svg/pre001.svg`, `svg/pre002.svg`, ..., `svg/pre100.svg`.
+
## Les *players*
### `SVGPlayerOne.js`