Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Avant d'évoquer le panneau "animations" introduit par la version 4 de Boxy SVG, je voudrais revenir sur deux
commandes intéressantes de la barre de droite : "Bibliothèques" et "Métadonnées".
Ci-dessous un document Boxy dont les objets ont été construits via la commmande "Bibliothèques" de la BD.
Les objets de la première rangée ont été obtenus grâce à des "drag & drop" de l'onglet "Couleurs" vers le canevas.
Les objets de la deuxième rangée ont été obtenus grâce à des "glisser & déposer" de l'onglet "Dégradés" vers le canevas.
La première image insérée provient de l'onglet "Bitmaps" ; c'est donc une image matricielle.
La deuxième image insérée provient de l'onglet "Vecteurs" ; c'est donc une image vectorielle.
Grâce à la commande "MetaDonnées" de la barre de droite on peut attribuer à chaque objet un ID et une classe.
Les rectangles ont été alignés vers le bas : sélection de ces trois objets puis "aligner en bas" dans la BH.
Les ronds ont été alignés vers le haut : sélection de ces trois objets puis "aligner en haut" dans la BH.
Les objets de chaque rangée ont été "distribué horizontalement" toujours grâce à une commande de la BH.
Avant de dessiner chaque rond j'ai double cliqué sur "Ellipse" afin de pouvoir sélectionner "cercle" puis j'ai appuyé sur MAJ tout en dessinant.
Observez bien le code SVG généré ; chaque objet a les attributs id & class
Pour les ronds les instructions utilisent la balise circle (et non pas ellipse) grâce à la manipulation évoquée ci-dessus.
L'attribut class permet de style rapidement les objets.
Pour animer un objet via le CSS3 ou le JavaScript il faut utiliser son ID dans le code.
Via un éditeur de texte j'ai inséré une feuille de style définissant les deux classes.
Et oui, un document SVG peut contenir une feuille de style interne.
Attention, j'ai aussi supprimé les attributs style dans les éléments rect & circle sinon la feuille de style n'est pas
prise en compte puisque une règle de style en ligne est prioritaire sur une règle dans une feuille de style.
Notez que les paramètres géométriques sont des nombres décimaux ; pensez à utiliser l'outil "Géométrie" pour que les attributs x,y,width, height,cx,cy,rx,ry,r soient des entiers !
Si je veux que tous les rectangles soient remplis de bleu ciel avec un trait bleu marine il suffit de modifier la définition de la classe "rectangle".
La version 4 de Boxy SVG a introduit un module d'animation qui permet de générer du SMIL.
Pour apprécier ce module il faut mieux avoir de bonnes notions en SMIL (composante animation du SVG).
Objectif : deux animations simultanées s'appliquant au même objet.
Le cercle devient une ellipse écrasée horizontalement puis écrasée verticalement. Ce cycle se répète à l'infini.
Le démarrage de l'animation est automatique.
Je me suis contenté d'insérer le document Boxy dans cette page via l'élément HTML OBJECT.
En effet dès qu'il y a animation dans une image vectorielle, il est préférable utiliser OBJECT plutôt que IMG.
Mais j'aurais pu aussi coller le code du document SVG dans la page et procéder à des modifications mineures ...
À l'intérieur du conteneur ellipse deux instructions animate ont été générées !
Observez attentivement une capture d'écran de l'interface d'animation :
Notez que chaque animation est représentée par un axe qui indique la durée du cycle et précise les étapes par de petits carrés blancs.
Sous Boxy j'ai dessiné l'ellipse puis j'ai cliqué sur l'onglet "animations" pour accéder à l'interface qui génère du SMIL.
Sur chaque axe j'ai cliqué sur chaque carré blanc pour préciser une valeur.
Pour avoir un regard critique sur le code SMIL généré par Boxy SVG et éventuellement le corriger, il est préférable
que vous ayez de bonnes notions sur le SMIL et en particulier sur la balise animate.
Bonne nouvelle : il existe dans mon site un tuto sur le SVG avec quelques chapitres sur sa composante SMIL.
L'élément animate du SMIL
Le précédent exemple portait sur des paramètres géométriques. Cette fois elle porte sur des paramètres
de présentation.
De plus les deux animations sont ici successives.
Cliquez sur le rond pour lancer l'animation.
Le remplissage devient de plus en plus opaque puis c'est le trait qui devient de plus en plus transparent jusqu'à disparaitre.
L'animation se termmine au bout de 10 secondes.
Plutôt que d'afficher ce document SVG dans la page web, j'ai décidé de convertir le SVG externe en SVG interne.
J'ai copié la totalité du code dans cette page puis j'ai supprimé la première ligne et j'ai modifié le code
de la balise SVG.
La valeur de width est un pourcentage ; ainsi la zone de dessin est "responsive".
Première animation : ... begin ="click" ... : le démarrage n'est plus automatique mais déclenché par le visiteur.
Les deux animations : ... restart="whenNotActive" ... : une fois déclenchée l'animation ne peut être suspendue.
Le panneau "animations" de Boxy SVG peut générer non seulement des élements "animate" mais aussi des "animateTransform".
Cliquez sur le carré pour lancer l'animation.
Le carré change de taille tout en subissant une rotation mais la forme reste bien centrée dans le canevas.
J'ai dessiné un rectangle des dimensions du canevas rempli par un dégradé linéaire.
J'ai ensuite dessiné un carré que j'ai centré dans le canevas.
Ces deux animations sont dans la rubrique "transformer".
Extrait du code :
Dans les deux instructions animateTransform notez bien l'attribut additive="sum"
Ce qui signifie que les deux transformations sont conjointes.
Dans la règle de style relative au carré (objet des transformations) vous lisez : transform-origin: 50% 50% ; Boxy SVG rajoute d'office cette propriété. Ainsi le changement d'échelle ne s'accompagne pas d'une translation.
Je vous renvoie à mon tuto sur le SMIL et plus précisément sur l'élément animateTransform.
La balise animateTransform
Le panneau "animations" de Boxy SVG peut aussi générer le déplacement d'un objet le long d'un chemin donc produire une instruction SVG basée sur l'élément animateMotion.
Cliquez sur la fusée pour lancer l'animation.
Observez bien la capture d'écran ci-dessous :
En pointillé le chemin que j'ai dessiné.
Je vous invite à lire le chapitre ad hoc dans mon tuto sur le SMIL.
Ci-dessous un document Boxy inséré dans cette page web :
Cliquez sur le rond bleu pour démarrer l'animation.
La boule fait un AR puis fait le tour du canevas.
Ci-dessous aspect du module 'animation' pour ce docuemnt :
En fonction de ce que vous avez lu, vous devez être capable de créer ce document SVG via Boxy.
Le canevas est délimité par un rectangle de 600 par 400 nom rempli avec des coins arrondis (rayon de 20) et un trait de bordure
de 3px d'épaisseur.
La boule a un rayon de 20 et est positionnée au départ à 20 20.
Animation :
La boule bleu fait un AR (4 secondes à l'aller et 6 secondes au retour) puis elle fait le tour du canevas à un rythme constant :
100px par seconde.
Il y a donc 6 animations : deux simultanées l'une sur cx et l'autre sur cy puis quatre animations successives portant
respectivement sur cx, cy, cx, cy.
Pensez à identifiez chaque animation ; la valeur de l'attribut end peut être une expression du genre "#a90.end". Ainsi vous pouvez synchroniser les animations.
En cliquant sur l'onglet "éléments" vous accédez au code SVG généré.
Cliquez alors sur une instruction, faites un clic droit et sélectionnez "ajouter un attribut" pour rajouter éventuellement
un ID à une animation.