Bibliothèque partagée

  • 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

Surement que bien des gens connaissent cette utilisation des librairies partagées, mais je tenais quand même à mettre un ticket sur le sujet, rien que pour pouvoir m'en rappeler moi-même Smile

En fait, tout ceci est parti d'un thread du forum Flash-France ou FunkC donnait un lien vers un exemple de Flashcom, permettant d'utiliser une librairie partagée dans son véritable sens. C'est à dire avoir un swf externe contenant des objets utilisables par un swf principal.

J'avais tenté il y a quelques temps une première approche des librairies partagées, mais je n'avais pas bien compris son fonctionnement. En fait, je mettais des objets dans la bibliothèque d'un swf "lib", puis je copiais les objets de cette même bibliothèque dans la bibliothèque de mon fla principal "main". Ensuite, pour chaque objet copié, je cochais sa case "Toujours mettre à jour avant la publication" dans la bibliothèque "main".
J'avais donc une pseudo librairie partagée. Si je voulais changer un objet, je le change dans la "lib", et je recompile "main". Mais cette approche me semblais plutot tordue et difficile à mettre en oeuvre/maintenir...

C'est ainsi que j'ai découvert une autre manière de faire, relativement simple et bien plus puissante que celle expliquée ci-dessus.

Dans la bibliothèque de mon swf externe "lib", je choisi 1 et 1 seul clip, dont je vais modifier les propriétés :

à cocher :
- Exporter pour ActionScript
- Exporter pour le partage à l'exécution
- Exporter dans la première image

puis enfin, dans le textField "URL", je met un simple slash "/". Ce "slash" va être reporté sur tous les autres objets de la bibliothèque, dans la zone URL. Donc tous les objets seront accessibles

Ma librairie est prête à être utilisée (ne pas oublier d'exporter pour ActionScript tous les objets à utiliser dans le fla principal)

Une fois la librairie configurée, il faut maintenant glisser l'objet dont on a modifié les 3 propriétés d'exportation de la bibliothèque "lib" sur la scène de "main".
Ceci est nécessaire afin de pouvoir lier la librairie externe au fla principal. Il est obligatoire que l'objet soit déposé sur la scène. Etre présent dans la bibliothèque ne suffit pas.

L'importation de l'objet effectuée, il faut modifier les propriétés de cet objet dans la bibliothèque "main".
L'affichage du panneau de propriétés de l'objet nous montre qu'il est "importé pour le partage à l'exécution". Il suffit encore de valoriser l'URL du fichier librairie (./lib.swf) et le processus est terminé.

A partir de là, on peut utiliser tous les clips de lib.swf qui sont "exportés pour ActionScript" dans main.swf. On peut donc puiser dans une bibliothèque externe des éléments à utiliser dans un fla principal. Cette astuce ouvre pas mal de possibilités au niveau de l'utilisation des bibliothèques.

Et maintenant, grace à FunkC, on a même encore mieux :
Possibilité de modifier à la volée la librairie externe utilisée. Imaginons le cas d'un jeu multi-niveaux... la structure d'un niveau est toujours la même, seuls les décors changent. Il serai possible de créer une librairie par niveau, et de l'interchanger à la demande, afin d'afficher les bons graphiques au bon moment.
ça se passe par ici

Voilà pour ce qui est du partage de bibliothèques Wink




Serait il possible de m'envoyer un exemple avec 2 fichiers.
L'un avec image + mp3 dans la bibliotheque et un autre permettant d'appeler l'image ou le son.
Par avance Merci

J'avais deja entendu parlé

J'avais deja entendu parlé de cette fonctionnalité, mais je ne pensais pas qu'elle pouvait etre si pratique Smile
merci pour l'info,
Erwan

[...] 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, [...]