Loader movies : les animations "amorce"

Tant que tout le monde n'a pas un modem ultra-rapide, vous devez faire attention à la taille de vos animations Shockwave. Macromedia vous offre plusieurs possibilités pour réduire la taille d'une animation donnée :

  • utiliser des images vectorielles
  • compresser les images bitmap et les sons
  • créer et manipuler des images à la volée
  • diviser votre projet en plusieurs petites animations
  • télécharger des distributions externes qui peuvent servir pour plusieurs animations
  • ...

Dans tous ces cas il y a question d'un compromis : vous réduisez le temps de téléchargement mais vous réduisez également la qualité ou la réactivité. Parfois, créer une grosse animation est votre seule option. Comment donc convaincre les utilisateurs potentiels de l'intérêt de la télécharger ?

Une solution est de vous servir d'une "loader movie", une animation amorce. Une toute petite animation, l'amorce se charge très vite sur le disque dur de votre utilisateur, puis l'occupe pendant que votre animation principale se charge en tâche de fond.

Afficher la progression
Dans un monde idéal, l'animation amorce fait partie intégrante de l'expérience que vous voulez donner à l'utilisateur. Dans le monde réel, l'utilisateur comprend tout de suite qu'il ne s'agit que d'une subterfuge pour le faire patienter. Il est donc courtois de lui indiquer la progression du téléchargement de l'animation principale. Vous pouvez faire cela de deux manières : par un affichage texte du style "X% de Y Ko téléchargé", ou par une barre de progression.

Lorsque l'animation principale est disponible, vous devrez faire un choix : vous pouvez passer immédiatement à l'animation principale sans l'avis de l'utilisateur, ou vous pouvez donner à l'utilisateur la possibilité de changer d'animation quand il sera prêt.

Démonstration
Ouvrez l'animation Shockwave de démonstration. Elle ne pèse que 16 Ko, et se charge très vite. Elle appelle aussitôt une autre animation : "grosseAnimation.dir". En fait, pour ne pas monopoliser votre modem pour la démonstration celle-ci ne pèse que 24 Ko. A vous de la remplacer par une autre, autrement plus lourde.

Si votre connexion est lente, une barre de progression et des détails textuels vous informent, au fur et à mesure, de l'état de téléchargement. Dès que la deuxième animation est chargée dans un cache sur votre disque dur local, le bouton "Démarrer" de l'animation amorce devient actif.

Les cinq comportements
L'animation de démonstration utilise cinq comportements interdépendants :

  • Précharger animation
  • Etats souris
  • Go to net movie
  • Afficher flux
  • Afficher URL en cours de téléchargement

Les trois premiers comportements sont attachés à la même image-objet, qui représente un bouton avec le texte "Démarrer". Le comportement "Précharger animation" démarre le téléchargement, puis informe les deux suivants lorsque le téléchargement se termine avec succès. Le comportement "Etats souris" affiche différents états pour le bouton : inactif, standard, survol et activé. Il bloque aussi les événements #mouseUp tant que le bouton n'affiche pas son état actif. Le comportement "Go to net movie" attend la fin du préchargement avant de permettre à l'utilisateur de sauter à l'animation principale. Le comportement "Etats souris" n'est donc pas essentiel. Si vous le retirez, le bouton fonctionnera quand même dès la fin du téléchargement. Par contre, il n'y aura aucune indication visuelle que le bouton est devenu actif.

Les deux autres comportements permettent de afficher une barre de progression ainsi que du texte qui donne des détails sur l'url et l'état du téléchargement. "Afficher flux" est utilisé sur deux images-objets ; celle avec un acteur Forme (#shape) affiche une barre de progression, celle avec un acteur Champ (#field) affiche le pourcentage du fichier déjà chargé. "Afficher URL en cours de téléchargement" s'occupe d'afficher le nom de l'URL dans un acteur Champ. Une fois le téléchargement terminé, le nom de l'URL est effacé.

Je ne vais pas décrire les scripts en détail : le code source est bien commenté. Il suffit de sauvegarder l'animation non protégée "amorcer.dir" (88 Ko) sur votre disque dur, puis de l'ouvrir dans Director. (Cliquez sur le lien avec le bouton droit sur PC, ou cliquez et gardez appuyé sur Mac : dans le menu contextuel qui apparaît, choisissez "Enregistrer le cible sous...", ou semblable).

Personnaliser
Vous pouvez personnaliser l'animation, sans modifier les comportements. Si vous le souhaitez, vous pouvez également étudier les comportements pour découvrir comment ils fonctionnent. Vous verrez que les comportements sont assez généralistes. Vous pouvez donc diminuer encore la taille de l'animation, en retirant toute ligne de code qui n'est pas essentielle pour votre animation.

N'oubliez pas de sauvegarder votre animation finale en format Shockwave : pour l'exemple utilisé ici, la taille de l'animation Shockwave est moins de 20% de la taille de l'animation non compressée. Le téléchargement se fait alors plus de 5 fois plus vite.

Simili-streamStatus
J'ai inclus un Script Parent nommé "Simili-streamStatus". Pour tester la barre de progression hors ligne, changez le type de Script en "Script d'animation" (#movie). Ainsi, vous interceptez les appels à trois gestionnaires natifs de Director  : getStreamStatus(), netDone() and netError(). En ligne, cela n'a pas de sens. Mais simuler le téléchargment d'un fichier sans vous connecter à Internet peut être utile. Vous pouvez alors apporter des modifications et tester leur effet sans vous soucier du coût d'une communication téléphonique. Une fois vos comportements bien réglés, reconvertissez le script "Simili-streamStatus" en Script Parent, ou supprimez-le complètement.

A vous de jouer
Il ne vous reste qu'à ajouter une activité simple qui occupera l'utilisateur en attendant que l'animation principale se charge.

Bon courage.