made by Lou 1/9 Programmation en ActionScript 2 Sommaire Cliquer en maintenant
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é rémunérée) 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 fenêtres sont redimensionnables par l’utilisateur. Pour forcer l’intégration d’une police spéciale dans le document flash : ajouter la police dans la bibliothèque : clic droit dans la bibliothèque : Nouvelle police choix de la police et renommer la police made by Lou 2/9 Pour intégrer la police à un texte dynamique : penser à choisir les jeux de caractères en cliquant sur Intégrer dans le panneau Propriétés, et sélectionner les jeux à intégrer (typiquement les 2e, 3e, 4e et 5e) Il est d’usage 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 : dégrouper 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 d’ActionScript 2 texte en bleu : instructions à copier telles quelles texte en rouge : noms à changer en fonction du fichier, des noms affectés… A voir dans la bibliothèque : Classes ActionScript > De base > … Utiles ↑ trace (variable) trace (« ce texte s’affiche ») permet d’écrire dans le fichier output (utiliser les guillemets pour écrire du texte) { } bloc d’instructions // ligne de commentaire /* */ bloc de commentaire this.onEnterFrame = function () { instructions } boucle de jeu, s’exécute en permanence (au rythme de 1 exécution par frame) Stage fait référence à la zone de travail Stage.scaleMode = « noScale » paramètres permettant ou interdisant à l’utilisateur de redimensionner les éléments, la fenêtre Stage.showMenu = false désactive les menus avancés (zoom utilisateur, rembobiner, etc…) Stage.align = « T » sur une page web, affiche le swf à un endroit spécifié (en haut, à gauche…) fscommand (« commande », true / false) contient différentes commandes permettant de quitter, passer en plein écran, etc… (voir aide) System.capabilities.screenResolutionX System.capabilities.screenResolutionY lit la résolution de l’ordinateur de l’utilisateur (ne peut pas être modifié) var lastgt = getTimer(); onEnterFrame = function () { framerate = Math.round (1000/(getTimer() - lastgt)); lastgt = getTimer(); } obtient le framerate d’une animation Code de navigation ↑ Sert à spécifier un chemin où retrouver un movieClip. made by Lou 4/9 _parent. remonte d’un cran dans l’arborescence _root. remonte jusqu’à la timeline principale _root[« nomObjet »] définit l’objet nomObjet dans _root Variables ↑ Crée un « conteneur » qui contient un nombre, une chaîne de caractères, etc… qui peut évoluer avec le temps. var NomDeVariable: Type = Valeur crée une variable de type Type : Number : entier ou réel String : chaîne de caractères (entre guillemets) Array : tableau et lui affecte une valeur Valeur variable += nombre remplace « variable = variable + nombre » ++ -- ajouter / soustraire de 1 à la variable switch(variable) { case 1: instructions; break; case 2: instructions; break; } tester en série la valeur d’une variable Conditions ↑ Exécute des instructions dans des cas précis. if (condition) { instructions } else if (condition) { instructions } conditions si / alors / sinon == teste l’égalité >= <= > < teste si c’est supérieur, inférieur, éventuellement strictement != teste l’inégalité and && deux conditions (a et b) or une condition ou l’autre (non exclusif) for (var i=0 ; i<10 ; i++) { } exécuter X fois une instruction (ici 10) while (condition) { exécuter une instruction tant que la made by Lou 5/9 } condition n’est pas remplie Codes relatifs aux movieClips ↑ Ajouter, supprimer et modifier des movieClips dynamiquement (directement dans le code). Pour créer en ActionScript un objet, cliquer « Exporter pour ActionScript » dans le menu de propriétés de l’objet (dans la bibliothèque) et lui spécifier un nom. Laisser « exporter dans la première image » coché. Ensuite, écrire le code (voir tableau). A propos des profondeurs : il s’agit de la « position » des objets placés dans la scène. Les objets placés sur les calques ont des profondeurs négatives. Quand on commence à numéroter des objets dynamiques, il faut leur attribuer une profondeur positive. Attention ! un numéro de profondeur correspond à un seul objet. Si deux objets ont la même profondeur, seul le dernier spécifié apparaîtra. Pour pouvoir utiliser un champ de texte dynamique en code, créer un champ de texte dynamique, lui donner un nom d’instance, puis l’utiliser dans le code. this.attachMovie (“movie1”, “movie2”, 1) va chercher « movie1 » dans la bibliothèque ; le crée dynamiquement sur le « this » spécifié ; lui donne le nom d’instance « movie2 » ; apparaît à la profondeur 1 (plus la profondeur est grande, plus l’objet apparaît devant). nomObjet._x nomObjet._y coordonnées de nomObjet (en x et y) Par défaut, un objet apparaît à (0,0). nomObjet._width nomObjet._height taille de nomObjet nomObjet._alpha transparence de nomObjet (0 = invisible ; 100 = visible) nomObjet._currentframe nom renvoyant la frame d’animation d’un movieClip trace ( movie1.getDepth() ) ; récupérer la profondeur d’un movieclip movie1.swapDepths( valeur ) ; affecter une profondeur (numérique ou selon une règle) à un movieclip si la valeur entre parenthèses est un movie clip, la fonction intervertit la fonction des deux eval(“movie” + i) évalue le contenu des parenthèses pour en faire une variable objet.hitTest (objet2) teste si « objet » percute « objet2 » et renvoie une valeur true ou false (à tester avec une condition) ATTENTION objet2 doit être une forme made by Lou 6/9 simple (rectangle) ! sinon, il teste la boîte englobant la forme objet2.hitTest (objet._x,objet._y, true) teste si « objet2 » (dans sa forme précise) percute le centre de la forme objet pour contourner le problème du centre, faire plusieurs tests de collision (coins…) objet.removeMovieClip () supprimer un movie clip créé dynamiquement et possédant une profondeur positive onClipEvent (enterFrame) { instructions } « enterFrame » crée une boucle sur le movieClip ; « load » démarre le programme dès que le movieClip est chargé ; etc… 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 importe le filtre « drop shadow » crée un filtre de flou « filtre » qui va s’appliquer à un movieClip spécifier tous les paramètres. (Boolean = true or false) crée un tableau qui va contenir tous les effets applicables insère la variable « filtre » dans la dernière case du tableau applique tous les filtres du tableau au movieClip for (var name in this) { } parcourt tous les objets qui sont dans un movieClip (ici, « this ») et les inscrit dans la variable « name » typeof (this[name]) type des objets définis grâce à la ligne ci- dessus (peut être string, movieclip, object, number, boolean ou function) permet par exemple de tester s’il s’agit d’un 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) { } détecte un clic sur un bouton (code à mettre à l’intérieur du bouton) bouton.onPress = function() { instructions détecte un clic sur un bouton (code à mettre dans la timeline made by Lou 7/9 } principale) Tableaux ↑ Les tableaux permettent de contenir des listes de variables de même type. On peut repérer une variable par la position de sa case. var monTableau :Array = new Array(10) crée un tableau de 10 cases (de 0 à 9) monTableau [0] monTableau [1] monTableau [i] permet d’accéder au contenu de chaque case (penser à utiliser une boucle « for » avec la variable [i] comme numéro de case dans le tableau) ; permet d’affecter une valeur, de tester, de faire un « trace »… var monTableau = [0, 1, 2, 25, 100] crée un tableau et remplit ses cases tableau.pop () ; retourne la valeur contenue dans la dernière valeur du tableau, et la supprime du tableau tableau.push (valeur) ; ajoute la valeur « valeur » dans la dernière case du tableau Touches et souris ↑ Détecte l’appui sur les touches ou sur la souris. var myListener :Object = new Object () ; Key.addListener (myListener) ; myListener.onKeyDown = function() { instruction } création d’un listener pour une touche test sur des appuis uploads/S4/ programmation-as2.pdf
Documents similaires










-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 09, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.3849MB