Bibliothèque partagée, les sons

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Après les objets (mc, boutons et graphiques) partagés, dont j'ai donné une explication précédemment, voici maintenant que je tente d'appliquer la méthode aux sons.

Seulement, les sons fonctionnent différement. On ne peut pas les partager de la même manière que les objets Flash, mais il existe une technique toute simple pour partager des sons via un swf externe.
Tout d'abord, un peu d'historique. Comme je l'avais expliqué sur Flash-France, ma gestion du son se limitait à créer un swf externe ayant une timeline assez remplie, chaque son prenant son propre emplacement, sans chevaucher d'autres sons. A partir de là, je jouais mes sons à coup de gotoAndPlay, afin de gérer les sons évenementiels...
Seulement, ce n'est pas très optimal... un seul son joué à la fois, dès qu'on veut ajouter un son, on doit retoucher le fla au niveau timeline, se rappeler des images-clé de départ pour jouer le bon son au bon moment... Tout ceci était assez astreignant, mais j'étais encore dans le flou au niveau du son...

Il y a quelques temps, justement après avoir lancé ce fameux thread de FF discutant de la gestion du son, SamyStudio me proposait de faire un tour du coté de TweenPix et de rechercher du coté de la "SoundFactory, ce que je fis. Et donc, je tombais sur une classe de gestion du son entièrement par ActionScript, et simple à utiliser qui plus est. J'étais conquis.

Donc tout ceci pour en arriver à la finalité. L'utilisation d'une classe du genre SoundFactory avec une librairie de sons.
Le principe est en fait tout simple : charger le swf librairie dans un conteneur, ce dernier étant auparavant initialisé sur la soundFactory...

Pour être plus clair, il est nécessaire à la soundFactory de charger les sons dans un emplacement pour pouvoir les jouer. Pour que les sons soient fonctionnels, il faut donc cibler le conteneur de la librairie en tant qu'emplacement de chargement. Les sons sont donc attachés dans la librairie elle-même, ce qui permet de les rendre valide.
L'utilisation d'une classe de type SoundFactory n'est bien sur pas indispensable. La seule contrainte étant d'attacher les sons au conteneur de la librairie.

Merci à Christophe (nosoucy) qui m'a fourni un petit exemple et m'a permis de régler mon incompréhension à ce sujet Wink




Pour les sons, il y a meme plus simple, puisqu'on peut charger directement un mp3. La SoundLibrary de Tweenpix propose d'ailleurs une methode
loadSound(). C'est vrai que les mp3 chargés depuis l'exterieur bouclent mal, mais petepx avait aussi parlé d'une théorie pour mieux détecter la fin
d'un son. Après quelques experimentations, j'ai modifié la SoundLibrary et ca boucle parfaitement.

PS : pourquoi mon Feedreader n'a pas vu tes 2 derniers billets sur ton RSS ? (dernier billet qui apparait : AMFPHP et les classes PHP)

Portrait de titouille

Je me souviens vaguement que petepx avait soulevé ce problème de bouclage parfait avec des sons chargés.
En fait, ce choix résulte de différentes décisions :

Premièrement, le but était d'utiliser les sons de la même manière qu'une librairie partagée comme je l'expliquait dans mon précédent billet.
Deuxièmement, charger des sons externes pour de l'évenementiel (des bips, des splitch, des plouf) je trouve ça un peu lourd... Plutôt à appliquer à des sons d'ambiance, je pense.
Troisièmement, je suis plutôt spécialisé en applicatifs qu'en animation. Ce qui fait que mes créations sont destinées à êtres transformés en exécutables ou à être intégré dans des modules python ou autre. Donc le fait de tout charger d'un coup ne me pose pas de réel problème au niveau du "preload", ça m'arrange, même Smile

Après, chacun est libre d'utiliser la manière qui lui plaira le plus. J'ai une vision des choses, mais je ne dis pas que c'est la bonne Wink Par contre, dans ma logique, je préfère faire une sorte de lib partagée car ça m'arrange.

Pour le feedReader, je ne sais pas du tout... je ne suis pas vraiment spécialiste dans mon blog, j'ai installé wordpress et je n'ai même pas pris la peine de changer le design de base, pour dire Smile.