Flash - charger et décharger dynamiquement des clips.

A l'aide de deux boutons nous allons charger puis décharger deux clips simultanément et dynamiquement

VOIR L'ANIMATION FLASH EN PLEINE PAGE DANS UN NAVIGATEUR

Voici comment procéder,

MC : MovieClip

Sur la timeline(ligne de temps)principale créez, deux calques. Un calque 'action' qui contiendra la totalité du script de notre animation à l'image 1. Un calque 'content' qui contiendra les deux MC qui serviront à charger et décharger nos animations.

Créez un premier symbole clip ROUGE qui aura une forme de bouton rond, ou bien autre chose, avec Flash la seule limite à la création est la limite de l'imagination. Dupliquez ce MC, nommez le VERT et changez la couleur en vert (ici un dégradé de vert) grâce au nuancier et à l'outil pot de peinture.

A partir de la bibliothèque glissez/déposez sur la scène une instance(occurrence)du MC ROUGE et une instance du MC VERT, placez les comme bon vous semble, alignez les si vous le souhaitez grâce au panneau 'aligner' (Ctrl + k).

Sélectionnez l'instance du MC ROUGE et nommez le dans le panneau 'propriétés' en mc_close

Sélectionnez ensuite l'instance du MC VERT et nommez le mc_open

Préparez au même niveau et dans le même répertoire ou l'on trouvera le fichier .swf ainsi que le fichier .html (pour un déploiement sur le web) de l' animation principale. Préparez donc dans ce même répertoire les fichiers que vous souhaitez charger et décharger dynamiquement. Ici je prépare un fichier anim.swf qui contient une petite animation, et une photo jeu_echec.jpg

Petite précision de sémantique, on entend par le terme MovieClip dans Action Script, un objet, ce n'est pas forcément une animation, ici dans notre exemple la photo jeu_echec.jpg est traitée en tant que MovieClip dans notre programmation.

 

Voilà les éléments sont en place, nous allons maintenant étudier le code AS2 que nous allons placer sur l'image 1 de notre ligne de temps principale

Vous pouvez copier le code ci-dessous et le coller directement dans votre animation Flash, bien entendu vous devrez adapter ce script aux noms de vos éléments, MC chargés etc si vous voulez charger autre chose que les exemples fournis

//=================================================
//                  WWW.TEKNIKPROD.COM
//       Chargement / déchargement de Movie Clips
//=================================================

var exist:Boolean = false;
/*on initialise cette variable 'exist'
en déterminant son état 'false' au départ*/

/*Dans les explications j'utiliserai MC pour MovieClip*/

mc_close.onPress = function(){
/*lorsqu'on va cliquer sur le MC 'mc_close',
on va déclencher la fonction ci-dessous*/

mc_demo1.unloadMovie();
/*mc_demo1 et mc_demo2 sont des MC vides
qui vont contenir les MC qui seront charger.
unloadMovie() donne l'ordre de décharger les clip*/
mc_demo2.unloadMovie();
exist = false;
/*on confirme la valeur de la variable
'exist' en 'false' dans le cas où une personne appuie sur
le MC rouge mc_close alors qu'aucun clip n'est chargé*/
}

mc_open.onPress = function(){
/*on va déterminer la fonction qui va s'exécuter lorsqu'on
va cliquer sur le MC vert mc_open*/
if (!exist){
/*Si la valeur de la variable exist est 'false' alors...
on exécute la suite de cette boucle 'if'*/
_level0.createEmptyMovieClip('mc_demo1', _level0.getNextHighestDepth());
/*Là on demande la création d'un Movie Clip vide
au niveau de profondeur 0 (_level0), ce MC vide
(Movie Clip Container)sera nommé mc_demo1 et il sera placé
sur le première profondeur disponible à partir de _level0*/
mc_demo1.loadMovie('jeu_echec.jpg');
/*Je charge dans mon MovieClip vide mc_demo1
un clip (ici une photo Jpeg 'jeu-echec.jpg'
Notez que ces fichiers téléchargez devront se trouver
sous le même répertoire et au même niveau que le fichier
Swf qui les appelle*/
mc_demo1._x=200;
/*je place le MC mc_demo1 à 200 pixels de la marge gauche
sur l'axe des x.
Dans un MC le point de référence du clip se trouve dans
l'angle en haut à gauche*/
mc_demo1._y=200;
//Déduisez !!

_level0.createEmptyMovieClip('mc_demo2', _level0.getNextHighestDepth());
/*Je procède de la même manière pour créer
le clip vide mc_demo2 qui va acceuillir une animation
Flash au format SWF (nommée anim.swf)*/
mc_demo2.loadMovie('anim.swf');
mc_demo2._x=100;
mc_demo2._y=100;
exist=true;
/*Pour finir je bascule la valeur de ma variable
exist sur true puisque les clip sont chargés*/
}
}

A bientôt

Patrick

Imprimer