Télécharger :

Slides:



Advertisements
Présentations similaires
WordArt Vacances au soleil.
Advertisements

Exposé Flash 3 - Tir aux canards - BRIGOLLE Mathieu GI04Printemps 07.
Interactivé: L'Action Script.
SI28 FLASH MX Partie 1 Jérémy Dufetre - Ludovic Pilache.
Lexique des manœuvres de base pour utiliser à PowerPoint
La fonction Style Permet de créer des types de texte, par exemple
Les TABLEAUX Retour au menu principal.
12 novembre 2012 Grégory Petit
Accès aux Métiers de l’Informatique
PRÉSENTATION Logiciel de traitement de texte:
Cours de programmation
Prologue : les premiers préparatifs Première étape : Ouvrir le logiciel de création de pages au format HTML (pages Web) Deuxième étape : enregistrer la.
Créer une animation simple Gif avec ImageReady.
Création d'un diaporama Création d'un diaporama
Comment réaliser une mise en page ?. Tracer une zone de texte.
Création et présentation d’un tableau avec Word 2007
Plan de la leçon Réf. p. WRD- 149 Les styles Les listes hiérarchiques
Ouvrez le menu principal
Comment créer un montage vidéo?
Conception des pages Web avec
Programmation créative Semaine 03. Agenda de leçon  Rotation d’un sprite  Modifier la couleur d’un sprite.
Faire déplacer le personnage à l’aide des flèches du clavier Il y a plusieurs façon de procéder selon nos attentes, mais en voici une qui est très simple:
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
FLASH MX : séance 1 Sandrine Rabin Nicolas Mollet SI28.
Environnement Flash MX
DreamWeaver Séance 2 HMIDA Ahmed A2008. Plan 1.Calques 2.CSS 3.Modèles 4.Formulaires 5.Comportements 6.Mise en ligne.
FLASH MX : séance 1 Vivien FILIPPINI Jeanne VERRE Exposé SI28.
Séance Flash 2 TD SI28 du 16/04/07 Nadel Ben Ghmiss Bruno Prémartin.
Exposé DREAMWEAVER 2 Guillaume DUBREUIL Adrien HADOUX.
EXPOSE N° 1 Thomas CLARISSE Yann GUIGUET.
Padmanaathan Gaayathrie
Réalisation d'un jeu de tir aux Canards Florian GAUCHER Alexandre LEVY SI 28 Exposé Flash 3.
Deuxième Exposé Si Nicolas Debeljak Sun Young Park.
SI28 - Écriture multimédia interactive – A2004 Présentation Dreamweaver Partie 2 Pierre Malet GSU05.
FLASH SEANCE 2 Interaction avec Action Script. Action script Langage de programmation utilisé par Flash. Définir des propriétés, des actions des comportements.
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Flash 2 ème séance Interaction François Marliac Mickaël Moreira.
Flash 3 : Le jeu du canard. Objectif de la séance Battre M. Bouchardon au jeu du canard Mettre en pratique les connaissances acquises pour créer un jeu.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Dreamweaver le retour Avec Les Formulaires Les Calques
Flash MX er Séance LIU Xinlei GI02.
FLASH MX : séance 1 Adrien Deken Thomas Bergonzini SI28.
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
Les formulaires Les calques Les comportements Les scénarios Les modèles Les feuilles de styles (CSS) La mise en ligne Les formulaires permettent à l’utilisateur.
Amine Benabdennbi - Omar Berrada Rekhami Flash 2 – Interactivité Avancée Flash 2 Séance de Flash n°2 TD SI28 du 16/04/2007 Amine Benabdennbi Omar Berrada.
Flash 1 Cariou SandraCoffinot Nicolas. Sommaire : I)Généralités II)Interface de Flash III)Grouper et Dissocier IV)Image clé V)Scénario et calques VI)Symboles.
SI28 Flash séance 1 Dessins et Animations. Présentation de Flash  Création d’animations pour le Web, pouvant contenir une forte interactivité.  Faible.
Télécharger :
Réalisation d’un jeu de tir au canards. Page d’accueil Télécharger les fichiers sources. Importez les images parchemins et fond_shoot Insérer l’image.
Flash : deuxième séance Yannick Bresson Alessandro Camozzato Tien-Quang Tong 22/10/07.
1 Exposé Flash 3 Objectif : Réalisation d’un jeu de tir aux canards Si28 - Paméla GUERIZEC – le 28 novembre 2005.
SI28 Flash 3 Tir’O’Canard 1 Téléchargez le swf : 1.Présentation 5.Fin 4.Jeu 2.Zone de travail 3.Menu.
EXPOSE FLASH 2 SI 28 24/10/2006 Delphine GODREAU Hélène PERRIER.
Sommaire : -A propos des images importées -Les boutons et l’interactivité dans la scène -Textes dynamiques -Les clips (les liaisons) -Les sons -Les composants.
DREAMWEAVER MX2 - Séance 2 Les calques Les comportements Les scénarios Les formulaires Les feuilles de style Les modèles Les cadres Mise en ligne Jérôme.
L’interactivité avec ActionScript. ActionScript Langage de programmation de Flash qui permet de : Gérer des actions et des animations sur la scène Contrôler.
Gaëtan MARANZANA SI28-A04 Flash MX DEUXIEME EXPOSE.
Exposé Flash 3 - Tir aux canards - DIDELOT Guillaume GI02 VAN DER PLAETSEN Virginie GSU04Printemps 06.
Interface Tutorial Flash 2 Par Vincent ² SI28 – P06 Bibliothèque Composant s Panneau actions Barre d'outils Timeline.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
AKOONE Farouck LI Li SI 28 A2004. Flash permet de : Créer des animations pour le Web, pouvant contenir une forte interactivité Des fichiers de faible.
Les calques Les Template (modèles) Les Comportements Les scénarios Les formulaires Les CSS Le serveur Web de l’UTC Présentation.
BOUTET Antoine MARICOT Benoit ActionScript Flash Séance 2.
FLASH Séance 2 Xiaoliang Liang Morgane Le Nan SI28 P05.
Flash – séance 2 Interactions avec Action Script.
Présenté par: François-Xavier LECHEVALIER Fateh BOUGOUFFA
PRESENTATION FLASH 2 MAURIN Marion BERETTI Vincent.
Lundi 20 octobre 2008Séance Flash 21 Séance Flash 2 ActionScript Cheikh DIEDHIOU Germain LEDRUT.
FLASH MX Deuxième exposé. Sommaire  La bibliothèque commune  La bibliothèque projet  Les composants  Le panneau d’actions  Le code  Mise en application.
Transcription de la présentation:

Télécharger :

Préparation On modifie les propriétés du projet

On importe certains fichiers

On classe les fichiers On ajoute un calque et on les renomme. On insère 4 images clefs vides à la suite avec 2 par calques. Les 3 frames du calque Fond s’appellent Menu, Jeu et Fin.

On insère une instance de parchemin sur la scène et on l’aligne sur les bords 1 \fenêtre\aligner ou ctrl+k pour afficher l’onglet Réalisation du menu

On ajoute un bouton de la bibliothèque commune en faisant glisser sur le dossier « Menu »: \fenêtres\bibliothèque commune\boutons\classic buttons\arcade button\arcade button red On le met sur le parchemin et on l’appelle bouton_start On met 5 cadres textes : Textes statiques Textes de saisie avec bordure Nom de l’occurrence : pseudo Nom de variable : munitions

Gestion des polices dans Flash Par défaut, il est conseillé d’utiliser uniquement les polices _sans et _serif. Cela assure la compatibilité avec tous les ordinateurs. Si un ordinateur ne possède pas une police demandée, le texte ne s’affiche pas. _sans renvoie vers la police sans sérif par défaut associée à l’ordinateur (souvent c’est Arial) et _serif renvoie à la police par défaut avec serif (souvent Times New Roman) Si jamais on veut utiliser une police particulière, il faut l’intégrer au.swf. On peut intégrer partiellement ou la totalité d’une police grâce à l’icône « Intégrer… » dans les propriétés du cadre texte. Par exemple on peut mettre une police spéciale et intégrer les caractères « Latin basique » pour la saisie du pseudo.

On ajoute un composant Flash. On le fait glisser sur le dossier Menu : \fenêtre\composants ou ctrl+F7 et ensuite \user interface\radiobutton On fait glisser 3 instances sur la scène et on les redimensionnent avec l’outil de transformation libre. On change les labels des composants par : facile, moyen et difficile. On nomme les occurrences par : boutonfacile, boutonmoyen et boutondifficile. On change la valeur de selected pour que facile soit coché par défaut

On ajoute le code suivant sur le frame 1 du calque code : stop(); //Pour redimensionner les radiobuttons boutonfacile.fontSize = 39; boutonmoyen.fontSize = 39; boutondifficile.fontSize = 39; //Quand on clique sur le bouton rouge : bouton_start.onRelease = function() { /*On affecte le pseudo du joueur a une variable nom pour pouvoir l'utiliser dans une autre frame.*/ nom = pseudo.text; //Si le joueur n'a pas rentré son nom, il ne se passe rien. if (pseudo.text != "") { //Initialisation des variables score = 0; reste = munitions; temps = 0; //On règle la difficulté if (boutonfacile.selected) { difficulte = "facile"; } else if (boutonmoyen.selected) { difficulte = "moyen"; } else if (boutondifficile.selected) { difficulte = "difficile"; } //On lance le jeu gotoAndPlay("Jeu"); } };

Le jeu On se positionne maintenant sur la frame 2 du calque Fond. On crée un movieclip canard dans le dossier Jeu et on l’exporte pour ActionScript avec le nom canard. On importe sur la scène duck1.png et on répond oui pour importer les autres duck. On remarque que chaque image s’est mise sur un frame.

On va faire une édition sur toutes les frames à la fois : 1. On sélectionne la frame 1 et on choisit oignon sur tout 2. On clique sur modifier plusieurs images 3. Maintenant tous les images apparaissent à l’écran mais superposées. On les décale et on les sélectionne toutes avec SHIFT. 4. On les centre toutes à la fois 5. On les décale légèrement du centre, car le centre d’un clip représente le centre de rotation et on va faire tourner les canards plus tard. On met X=-110 et Y=-100

On désactive « modifier plusieurs images ». On fait glisser la frame 3 en 10 (on clique dessus, on relâche et on re-clique pour faire glisser) et la frame 2 en 5. On insère une image clef sur la frame 9 et on associe le code : gotoAndPlay(1); pour que le canard batte des ailes en boucle. On nomme la frame 10 dead. On revient sur la scène principale et on met une instance de fond_shoot sur la scène. On l’aligne au centre de la scène (il n’est pas nécessaire de le redimensionner car il a déjà la bonne taille). On le convertit en clip et on l’appelle fond_jeu, car on va lui associer du code ActionScript (on ne peut pas associer de code à une image). On nomme cette instance fond. On met une instance de cible. On le convertit en clip et on l’appelle souris, car on va lui associer également du code. On nomme cette instance curseur. On édite le clip : on l’aligne horizontalement et verticalement pour que le clic se fasse bien au centre de la cible quand on va remplacer la souris par ce clip. On ajoute 3 cadres textes dynamiques et 3 textes statiques associés : Texte statique initialisé par : « Score : » et texte dynamique associé avec comme nom de variable score. Texte statique initialisé par : « Munitions : » et texte dynamique associé avec comme nom de variable reste. Texte statique initialisé par : « Temps : » et texte dynamique associé avec comme nom de variable temps.

On ajoute une instance de canon sur la scène et on le convertit en clip. On édite ce clip : on l’aligne horizontalement au centre et on met Y=-170 pour que le centre de rotation coïncide à peu près avec le bas de la scène. On revient sur la scène et on nomme l’instance fusil. On aligne le fusil horizontalement et on le place en Y=430.

Nouveautés ActionScript Fonctions mathématiques : - Arrondir à l’unité : Math.round(10,5637) renvoie 11 - Tronquer à l’unité : int(10,5637) renvoie 10 - Générer une variable aléatoire qui suit une loi uniforme sur [0;1] : Math.random() renvoie par exemple Propriétés d’un clip : _x : coordonnées en x du clip en pixels _y : coordonnée en y en pixels _xscale : échelle en x en % 50% : la largeur du clip est réduite de moitié -100 % : la largeur du clip a sa taille d’origine mais le symétrique du clip par rapport à un axe parallèle à l’axe des x et passant par le centre du clip est affiché. _yscale : échelle en y en % Axe de symétrie

Systèmes de coordonnées de Flash x y 0 x y 0 En noir, c’est le système de coordonnées de la scène. En rouge, c’est le système de coordonnées du clip. Attention : quand on met le clip sur la scène, il est repéré par rapport au coin supérieur gauche, mais quand le fichier.swf est créé, il est repéré par rapport à son centre.

On l’ajoute le code suivant à la frame 2 du calque code : stop(); //On remplace le curseur /*On commence à déplacer le curseur avec la souris et on centre la souris au centre du curseur*/ startDrag(curseur, true); //On cache la souris Mouse.hide(); /* La classe hérite des propriété d'un clip car notre canard est un objet de la bibliothèque */ daffy.prototype = new MovieClip(); Autres commandes ActionScript : startDrag(…) : permet de déplacer un clip sous la souris. Il est possible de centrer le clip sur la souris. On peut également contraindre le déplacement dans un rectangle. attachMovie(« bidule », « mon_machin », 0) : permet d’afficher le clip nommé bidule (nom exporté pour ActionScript) à la profondeur 0 et de nommer cette instance mon_machin. On verra plus tard ce qu’est la profondeur.

function daffy() { //On crée des variables pour la classe daffy : //On ne peut tuer qu'une seule fois un canard : this.anti_triche = false; // Un canard est vivant par défaut : this.mort = false; // Un canard vol par défaut : this.crash = false; // La vitesse est aléatoire (entre 5 et 8) : this.vitesse = Math.random()*5+3; // sens aléatoire également (ici sens = 0 ou 1) : this.sens = Math.round(Math.random()); // fait en sorte que sens soit -1 ou 1 uniquement : if (this.sens == 0) { this.sens = -1; } // Donne une grosseur aléatoire aux canards (entre 20 et 60 %) : this._xscale = this._yscale=Math.random()*40+20; // donne une position aléatoire aux canards : this._x = Math.random()*680+66; this._y = Math.random()*140+60; // le canard est dirigé vers le sens où il va. La droite est le sens positif. this._xscale = this._xscale*-this.sens; } /* Liaison de notre classe avec l'objet de la bibliothèque */ Object.registerClass("canard", daffy); /* Création d'un canard à l'écran */ _root.attachMovie("canard","mon_canard",0);

On a bien un canard qui s’affiche à une position aléatoire. On met en commentaire la ligne _root.attachMovie("canard","mon_canard",0); Nouveautés ActionScript : Le switch : permet d’exécuter une suite de commande selon la valeur d’une variable. switch (variable) { case 0 : //si la variable vaut 0, on exécute ce code variable++; break; /*permet de sortir du switch, sinon toutes les autres commandes sont exécutées.*/ case 1 : …. etc… } Truc=setInterval(ma_fonction, 1000) : permet de lancer ma_fonction toutes les secondes. Truc est le nom de setInterval et on s’en servira pour arrêter les appels de ma_fonction.

On tape à la suite le code suivant : //Choix de la difficulté : switch (difficulte) { //si on a coché facile : case "facile" : //Nombre de canards au maximum à l'écran : max_canard = 10; // délai entre chaque apparition d'un nouveau canard : delai = 1000; break; case "moyen" : max_canard = 20; delai = 500; break; case "difficile" : max_canard = 30; delai = 300; break; } // Profondeur du canard : niveau = 1; // Nombre de canards affichés : total=0; //Création d'un canard function nouveau_canard() { if (total<max_canard) { attachMovie("canard", "mon_canard", niveau); niveau++; total++; } //Temporisation de la création de canards creation_canard = setInterval(nouveau_canard, delai);

La profondeur La profondeur d’un objet est un nombre qui représente le plan qu’il occupe par rapport aux autres objets. Par exemple, un objet en arrière plan aura la profondeur la plus faible. A une profondeur, correspond au maximum un objet. Flash attribue automatiquement une profondeur à chaque objet de la scène. Le 1 er objet placé sur la scène aura une profondeur de -2 14, le 2 ème une profondeur de , etc… On peut utiliser les calques pour régler facilement la profondeur. On crée les canards en commençant à une profondeur de 1, ils seront donc au- dessus de tous les autres objets. Pour avoir le curseur au-dessus des canards, il faut changer sa profondeur manuellement via le code suivant : curseur.swapDepths(999999); Le curseur aura alors une profondeur de Cette commande s’appelle swapDepths car on permute la profondeur avec l’objet qui se situe à ce niveau au cas il y en aurait un. En effet, il ne peut y avoir au plus qu’un objet à une profondeur donnée. Attention : après avoir modifié sa profondeur, le curseur va rester sur toutes les frames si on ne le supprime pas !

Nouveautés ActionScript : Fonction mathématique : Pour avoir la valeur absolue d’un nombre : Math.abs(-34.45) retourne Propriétés d’un clip : _width : la largeur du clip. _alpha : la transparence d’un clip en %. 50 % : à moitié transparent 0 % : invisible _rotation : angle de rotation du clip. Le centre de rotation est le centre du clip : rotation de 45° dans le sens horaire -45 : rotation de 45° dans le sens antihoraire removeMovieClip() : supprime le clip de la scène

On ajoute le code suivant à la suite : /*On met le curseur au premier plan (à une profondeur très élevée)*/ curseur.swapDepths(999999); /*Pour faire bouger les canards*/ daffy.prototype.onEnterFrame = function() { if (reste == 0) { //S'il n'y a plus de munitions, on supprime les canards. this.removeMovieClip(); } else { if (not this.crash) { // Si le canard n'est pas au sol : // Déplace le canard horizontalement : this._x = this._x+this.vitesse*this.sens; // Si le canard est sorti de l'écran vivant : if ((((this._x+(this._width*90/200))>800) or ((this._x- (this._width*110/200))<0)) and not this.mort) { // On change son sens : this.sens = -this.sens; // On inverse horizontalement l'image : this._xscale = -this._xscale; //On donne un peu d'élan au canard pour ne pas qu'il reste bloqué sur le bord this._x = this._x+this.sens; //On enlève 1 point au score. score--; }

if (this.mort) { // S'il a été touché, il faut qu'il tombe // Fait descendre le canard. La descente accélère quand la rotation augmente : this._y = this._y+1+(Math.abs(this._rotation))/4; // Fait tourner l'image du canard : if (Math.abs(this._rotation)<30) { this._rotation += this.sens; } // S'il touche terre : il est crashé if (this._y>450) { this.crash = true; } } else { // Le canard est par terre // On réduit sa transparence : this._alpha--; if (this._alpha<=0) { // S'il n'est plus visible, on le retire du total des canards affichés : total--; // On le retire de la scène this.removeMovieClip(); } };

//On retire 1 point s'il tire sur le fond fond.onMouseDown = function() { score--; }; /* Action quand on clique dessus */ daffy.prototype.onPress = function() { if (not this.anti_triche) { /*On augmente le score de 4 pour l'augmenter de 3 (car ça fait -1 quand on clique sur le fond) :*/ score += 4; // Change l'état du canard : this.mort = true; // Change l'image du canard : this.gotoAndStop("dead"); //Le prochain clic sur ce canard ne sera pas pris en compte : this.anti_triche = true; } else { /*On a cliqué plus d'une fois sur le même canard donc on incrémente le score pour ne pas qu'il change (car ça fait -1 quand on clique sur le fond) :*/ score++; } };

Mettre du son dans Flash Il y a 3 différentes manières d’ajouter du son à une animation : on peut charger un fichier externe (seulement s’il est au format MP3) : son2.loadSound("musique.mp3"); on peut lancer un son présent dans la bibliothèque par un code ActionScript : son1.attachSound("mon_son"); on peut associer un son à une frame : On peut alors lui ajouter des effets, jouer le son un certain nombre de fois, régler la synchronisation du son : - événement : le son se déclenche dès que la frame est atteinte. C’est ce qui est utilisé quand on lance un son via un code ActionScript. - démarrage : même chose que évènement sauf qu’il n’est pas possible de superposer plusieurs instances de cette musique (au cas où la frame est atteinte une 2ème fois avant que la musique déclenchée la 1ère fois ne soit finie). - arrêt : la musique sélectionnée s’arrête. - en continu : le son est parfaitement synchronisé. Sur un ordinateur lent, des frames seront passées afin que le son soit toujours en rapport avec l’image.

On ajoute zikette.mp3 à la frame 2 du calque fond. On choisit la synchronisation évènement et on la joue en boucle. On va lancer duck.mp3 dès qu’un canard apparaît. Pour cela, il faut l’exporter pour ActionScript sous le nom coincoin. On va charger gunfire.mp3 (présent dans le même dossier que le.fla) avec du code ActionScript. On ajoute le code suivant : // Variables des sons : son1 = new Sound(); son2 = new Sound(); // Charge les fichiers : son1.attachSound("coincoin"); son2.loadSound("gunfire.mp3"); // Définit les volumes : son1.setVolume(80); son2.setVolume(100); Dans la fonction nouveau_canard, dans le if (total<max_canard), on ajoute la ligne suivante : son1.start(); new Sound() permet de créer un son et de lui donner un nom. setVolume permet de changer le volume. Il s’exprime en %. On ne déclare un son qu’une seule fois, ensuite il ne reste plus qu’à lancer ou stopper le son aux endroits voulus.

Pour déclencher gunfire.mp3 à chaque fois que l’on clique et pour arrêter la partie, on ajoute le code suivant : curseur.onMouseDown = function() { _root.son2.start(); //On diminue le stock de munitions : _root.reste--; //On attend que le calcul du score soit fini (sinon on sort sans prendre en compte le résultat du dernier tir). //setTimeout est comme setInterval sauf qu'il ne se lance qu'une seule fois. setTimeout(fin_partie, 50); function fin_partie() { if (_root.reste == 0) { Mouse.show(); stopDrag(); //Pour arrêter tous les sons : stopAllSounds(); //Pour arrêter la création de canards clearInterval(creation_canard); _root.gotoAndStop("Fin"); //On supprime le curseur car sinon il va rester puisqu’on a modifié sa profondeur. curseur.removeMovieClip(); } }; On ajoute stop(); à la frame 3 du calque code pour pouvoir tester.

Chronomètre On veut ajouter un chronomètre. Pour cela on ajoute le code suivant : // Gestion du chrono function fonc_temps() { temps++; } temps_écoulé = setInterval(fonc_temps, 1000); On ajoute également dans la fonction curseur.onMouseDown dans le if (_root.reste == 0) : //Pour arrêter le chrono clearInterval(temps_écoulé);

Le canon On veut que le canon bouge quand on appuie sur le clavier, pour cela on ajoute le code : //On détecte qu'une touche a été pressée (nécessaire quand on n’associe pas le code directement au clip concerné) : Key.addListener(fusil); //Faire bouger de droite à gauche le fusil fusil.onKeyDown = function() { if (Key.getCode() == Key.RIGHT) { fusil._x = fusil._x+4; } if (Key.getCode() == Key.LEFT) { fusil._x = fusil._x-4; } };

On veut ensuite qu’il s’oriente en fonction de la position de la souris. Pour cela on ajoute le code suivant : fusil.onMouseMove = function() { // calcul d'angle delta_x = _xmouse-fusil._x; delta_y = _ymouse-fusil._y; angle = -Math.atan(delta_x/delta_y)*180/Math.PI; // limite l'orientation du fusil à +/-40° au max if (angle<-40) { angle = -40; } if (angle>40) { angle = 40; } // On fait la rotation fusil._rotation = angle; }; Nouveautés ActionScript : Math.PI : renvoie Math.atan(nombre) : renvoie l’arc tangente de nombre _xmouse et y_mouse : renvoient les coordonnées de la souris

Affichage des résultats On travaille maintenant sur la frame 3 de la couche fond. On ajoute le parchemin et on l’étire pour qu’il prenne toute la scène (de la même façon que pour la frame 1). On ajoute un grand cadre texte dynamique multiligne avec comme nom de variable « resultat ». On ajoute un texte statique initialisé par « Rejouer ? » On convertit ce texte en clip avec le nom « Rejouer » On convertit une nouvelle fois le clip « Rejouer » en clip « Rejouer animé » On édite le clip Rejouer animé : - On insère une image clef à la frame 10 et On agrandit le clip à la frame 10 (avec l’outil transformation libre) - On ajoute une interpolation de mouvement entre la frame 1 et 10 et une autre entre le frame 11 et On revient sur la scène. On supprime Rejouer animé de la scène. On ajoute Rejouer sur la scène. On convertit Rejouer en bouton qu’on appelle « Rejouer bouton ». On nomme cette instance « rejouer_bouton ». On édite Rejouer bouton : - On insère une image clef sur les frames 2, 3 et 4. - Sur la frame 4, on dessine un rectangle plein par-dessus le texte. Il faut que le rectangle recouvre complètement le texte, comme cela on ne sera pas obligé de cliquer précisément sur un caractère pour activer le bouton. - Sur la frame 3, on modifie la teinte du texte. - Sur la frame 2, on permute le clip avec « Rejouer animé ». (\Modification\Symbole\Permuter le symbole).

On ajoute le code suivant à la frame 3 du calque code : resultat = "Bravo "+nom+" ton score est de "+score+". Tu as joué pendant "+temps+" s."; bouton_rejouer.onRelease = function() { gotoAndPlay("Menu"); }; On obtient :

Chargement d’un fichier.swf On crée un fichier « Index.fla » dans le même répertoire que « Tir aux canards.fla ». On règle ce nouveau projet : on met une résolution de 800x700. On ajoute un texte dynamique tout en bas de la scène avec comme nom de variable « scorebis ». On ajoute à la frame 1 le code suivant : loadMovie("Tir aux canards.swf", 1); function rafraichit() { //On affiche le score uniquement s'il est défini if (_level1.score != undefined) { scorebis = _level1.score; } setInterval(rafraichit, 10); Nouveautés ActionScript : loadMovie("fichier.swf", niveau) : permet de charger un fichier.swf et de s’en servir comme un clip. Le niveau correspond à la hierarchie des animations (le niveau 0 est index.swf). On accède aux variables avec le préfixe _levelX avec X le niveau. unloadMovie(_levelX) : permet de fermer le.swf qui est sur le niveau X. Remarque : Quand on charge un.swf, il prend les mêmes propriétés que le.swf qui l’appelle (même cadence, même taille, même fond).