Vous êtes sur la page 1sur 9

made by Lou

1/9

Programmation en ActionScript 2
Sommaire Cliquer en maintenant Ctrl appuy pour suivre les liens. Utiles Code de navigation Variables Conditions Codes relatifs aux movieClips Codes relatifs aux boutons Tableaux Touches et souris Fonctions Sons Texte dynamique Chargement

A voir sur internet www.flashkod.com www.flashkit.com www.lostgarden.com www.kongregate.com site de publication libre www.newgrounds.com site de publication libre www.flashgamelicense.com vente de jeux flash www.mochiads.com attribution de licenses www.addictinggames.com site de sponsoring (exclusivit rmunre) www.bubblebox.com www.spielgroup.com site de jeux, ciblant aussi les casual www.armorgames.com Bases et astuces Pour gagner en performances : placer les objets en dehors de la zone de travail. Attention, les fentres sont redimensionnables par lutilisateur. Pour forcer lintgration dune police spciale dans le document flash : ajouter la police dans la bibliothque : clic droit dans la bibliothque : Nouvelle police choix de la police et renommer la police

made by Lou Pour intgrer la police un texte dynamique : penser choisir les jeux de caractres en cliquant sur Intgrer dans le panneau Proprits, et slectionner les jeux intgrer (typiquement les 2e, 3e, 4e et 5e)

2/9

Il est dusage de mettre une majuscule chaque nouveau mot dans la variable, par exemple scoreJoueurBeta ou monScore. Raccourcis utiles Ctrl + G : grouper (groupe sans influence sur le code) Ctrl + B : dgrouper F5 : ajouter une image dans une timeline F6 : ajouter une image-clef dans une timeline F9 : ajouter du code

made by Lou

3/9

Instructions dActionScript 2
texte en bleu : instructions copier telles quelles texte en rouge : noms changer en fonction du fichier, des noms affects A voir dans la bibliothque : Classes ActionScript > De base > Utiles trace (variable) trace ( ce texte saffiche ) { } // /* */ this.onEnterFrame = function () { instructions } Stage Stage.scaleMode = noScale permet dcrire dans le fichier output (utiliser les guillemets pour crire du texte) bloc dinstructions ligne de commentaire bloc de commentaire boucle de jeu, sexcute en permanence (au rythme de 1 excution par frame) fait rfrence la zone de travail paramtres permettant ou interdisant lutilisateur de redimensionner les lments, la fentre dsactive les menus avancs (zoom utilisateur, rembobiner, etc) sur une page web, affiche le swf un endroit spcifi (en haut, gauche) contient diffrentes commandes permettant de quitter, passer en plein cran, etc (voir aide) lit la rsolution de lordinateur de lutilisateur (ne peut pas tre modifi) obtient le framerate dune animation

Stage.showMenu = false Stage.align = T fscommand ( commande , true / false)

System.capabilities.screenResolutionX System.capabilities.screenResolutionY var lastgt = getTimer(); onEnterFrame = function () { framerate = Math.round (1000/(getTimer() lastgt)); lastgt = getTimer(); } Code de navigation

Sert spcifier un chemin o retrouver un movieClip.

made by Lou _parent. _root. _root[ nomObjet ] Variables Cre un conteneur qui contient un nombre, une chane de caractres, etc qui peut voluer avec le temps. var NomDeVariable: Type = Valeur cre une variable de type Type : Number : entier ou rel String : chane de caractres (entre guillemets) Array : tableau et lui affecte une valeur Valeur remplace variable = variable + nombre ajouter / soustraire de 1 la variable tester en srie la valeur dune variable

4/9 remonte dun cran dans larborescence remonte jusqu la timeline principale dfinit lobjet nomObjet dans _root

variable += nombre ++ -switch(variable) { case 1: instructions; break; case 2: instructions; break; } Conditions Excute des instructions dans des cas prcis. if (condition) { instructions } else if (condition) { instructions } == >= <= > < != and && or for (var i=0 ; i<10 ; i++) { } while (condition) {

conditions si / alors / sinon

teste lgalit teste si cest suprieur, infrieur, ventuellement strictement teste lingalit deux conditions (a et b) une condition ou lautre (non exclusif) excuter X fois une instruction (ici 10) excuter une instruction tant que la

made by Lou } Codes relatifs aux movieClips condition nest pas remplie

5/9

Ajouter, supprimer et modifier des movieClips dynamiquement (directement dans le code). Pour crer en ActionScript un objet, cliquer Exporter pour ActionScript dans le menu de proprits de lobjet (dans la bibliothque) et lui spcifier un nom. Laisser exporter dans la premire image coch. Ensuite, crire le code (voir tableau). A propos des profondeurs : il sagit de la position des objets placs dans la scne. Les objets placs sur les calques ont des profondeurs ngatives. Quand on commence numroter des objets dynamiques, il faut leur attribuer une profondeur positive. Attention ! un numro de profondeur correspond un seul objet. Si deux objets ont la mme profondeur, seul le dernier spcifi apparatra. Pour pouvoir utiliser un champ de texte dynamique en code, crer un champ de texte dynamique, lui donner un nom dinstance, puis lutiliser dans le code. this.attachMovie (movie1, movie2, 1) va chercher movie1 dans la bibliothque ; le cre dynamiquement sur le this spcifi ; lui donne le nom dinstance movie2 ; apparat la profondeur 1 (plus la profondeur est grande, plus lobjet apparat devant). coordonnes de nomObjet (en x et y) Par dfaut, un objet apparat (0,0). taille de nomObjet transparence de nomObjet (0 = invisible ; 100 = visible) nom renvoyant la frame danimation dun movieClip rcuprer la profondeur dun movieclip affecter une profondeur (numrique ou selon une rgle) un movieclip si la valeur entre parenthses est un movie clip, la fonction intervertit la fonction des deux value le contenu des parenthses pour en faire une variable teste si objet percute objet2 et renvoie une valeur true ou false ( tester avec une condition) ATTENTION objet2 doit tre une forme

nomObjet._x nomObjet._y nomObjet._width nomObjet._height nomObjet._alpha nomObjet._currentframe trace ( movie1.getDepth() ) ; movie1.swapDepths( valeur ) ;

eval(movie + i) objet.hitTest (objet2)

made by Lou

6/9 simple (rectangle) ! sinon, il teste la bote englobant la forme teste si objet2 (dans sa forme prcise) percute le centre de la forme objet pour contourner le problme du centre, faire plusieurs tests de collision (coins) supprimer un movie clip cr dynamiquement et possdant une profondeur positive enterFrame cre une boucle sur le movieClip ; load dmarre le programme ds que le movieClip est charg ; etc importe le filtre drop shadow cre un filtre de flou filtre qui va sappliquer un movieClip spcifier tous les paramtres. (Boolean = true or false) cre un tableau qui va contenir tous les effets applicables insre la variable filtre dans la dernire case du tableau applique tous les filtres du tableau au movieClip

objet2.hitTest (objet._x,objet._y, true)

objet.removeMovieClip ()

onClipEvent (enterFrame) { instructions } import flash.filters.DropShadowFilter ; var filtre : DropShadowFilter = new DropShadowFilter ([distance: Number], [angle: Number], [color: Number], [alpha: Number], [blurX: Number], [blurY: Number], [strength: Number], [quality: Number], [inner: Boolean], [knockout: Boolean], [hideObject: Boolean])
var tableauTemporaire:Array = new Array () ; tableauTemporaire.push (filtre); movieClip.filters = tableauTemporaire

for (var name in this) { }

typeof (this[name])

parcourt tous les objets qui sont dans un movieClip (ici, this ) et les inscrit dans la variable name type des objets dfinis grce la ligne cidessus (peut tre string, movieclip, object, number, boolean ou function) permet par exemple de tester sil sagit dun movieClip, et les supprimera ensuite (avec removeMovieClip(this[name]) ).

Codes relatifs aux boutons Les boutons sont les seuls objets sur lesquels on peut cliquer. on(press) { } bouton.onPress = function() { instructions dtecte un clic sur un bouton (code mettre lintrieur du bouton) dtecte un clic sur un bouton (code mettre dans la timeline

made by Lou } Tableaux Les tableaux permettent de contenir des listes de variables de mme type. On peut reprer une variable par la position de sa case. var monTableau :Array = new Array(10) monTableau [0] monTableau [1] monTableau [i] principale)

7/9

var monTableau = [0, 1, 2, 25, 100] tableau.pop () ;

tableau.push (valeur) ;

cre un tableau de 10 cases (de 0 9) permet daccder au contenu de chaque case (penser utiliser une boucle for avec la variable [i] comme numro de case dans le tableau) ; permet daffecter une valeur, de tester, de faire un trace cre un tableau et remplit ses cases retourne la valeur contenue dans la dernire valeur du tableau, et la supprime du tableau ajoute la valeur valeur dans la dernire case du tableau

Touches et souris Dtecte lappui sur les touches ou sur la souris. var myListener :Object = new Object () ; Key.addListener (myListener) ; myListener.onKeyDown = function() { instruction } var code = Key.getCode () var ascii = Key.getAscii () cration dun listener pour une touche test sur des appuis sur les touches (identique avec mouse )

Mouse.hide(); Mouse.show(); onKeyUp onKeyDown _xmouse Fonctions _ymouse

enregistre le code de la dernire touche appuye dans une variable code enregistre le code ascii de la dernire touche appuye dans une variable ascii permet dafficher ou masquer le curseur de la souris agit lorsquune touche est enfonce / relche coordonnes de la souris

Lorsquune suite dinstructions va tre excute de faon rgulire, on peut crer une fonction, cest--dire une instruction spciale qui lancera tout le bloc dinstructions. function nomFonction (a:Number, b:Number) { crer une fonction utilisant des nombres

made by Lou instructions }

8/9 a et b (noms gnriques, cette parenthse ne fait que dfinir des paramtres) ATTENTION ceci ne lance pas la fonction ! excute une fonction (e et f sont des variables dfinies plus tt) excute la fonction mathmatique xxx sur le nombre nb (voir les fonctions existantes dans la bibliothque) toutes les temps millisecondes, excute la fonction fonctionAExecuter lendroit _root (par exemple). supprime lintervalle lintrieur de la variable myInterval cre une fonction qui choisit un nombre alatoire entre min et max puis appelle cette fonction et lexcute pour renvoyer un entier compris entre 10 et 690

nomFonction (e, f)

Math.xxx (nb)

var myInterval = setInterval (_root, fonctionAExecuter, temps) clearInterval (myInterval) function randRange (min:Number, max:Number):Number { var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum; } randRange(10, 690) Sons var nomSon: Sound = new Sound (position) nomSon.attachSound (musique)

cre un son qui sappellera musique et lattache la variable nomSon ATTENTION : prfrer attacher un son par clip plutt que tous sur la timeline, sinon les modifications de volume sappliqueront tous ! lidal est de spcifier this pour position modifie le volume du son joue le son dmarre le son nb millisecondes plus tard que son dbut arrte le son joue les instructions chaque fois que le son est termin

nomSon.setVolume (0) nomSon.start () nomSon.start (nb) nomSon.stop () nomSon.onSoundComplete = function () { instructions } Texte dynamique this.createTextField(monTexte)

cre un cadre de texte dynamique vide

made by Lou nomTexte.text = x

9/9 crit x (une variable ou un texte entre guillemets) dans le champ de texte ayant pour nom doccurrence nomTexte dfinit le format du texte au format format ( dfinir avant) lutilisateur ne peut pas slectionner le texte cre un format de texte format dont les paramtres seront dfinis par la suite paramtres du format de texte format (voir liste complte dans laide)

monTexte.setTextFormat (format) monTexte.selectable = false var format:TextFormat new TextFormat () format.color = #COLOR format.font = FONT

Chargement Il est possible de simuler un chargement dans le lecteur flash (Affichage > Simuler le tlchargement) en configurant le lecteur. Permet de crer une barre de tlchargement. _root.getBytesLoaded _root.getBytesTotal octets dj tlchargs octets tlcharger