introdution à l’ actionscript 3seriousgames.lip6.fr/site/img/pdf/introductionas3.pdf ·...

Post on 22-Aug-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction à l’ActionScript 3

Mathieu Muratet

mathieu.muratet@lip6.fr

1

Historique

• 1998 : Prémisses – quelques « actions » : gotoAndPlay, gotoAndStop,

nextFrame…

• 2000-2004 : ActionScript 1.0 – Boucles, variables, fonctions…

• 2003-2006 : ActionScript 2.0 – Types (compilation), pseudo classes (prototype)…

• 2006-2013 : ActionScript 3.0 – Types (exécution), héritage à base de classe…

2

Machine virtuelle

• Langage compilé et interprété – Byte-code (pseudo-

code)

– Interpréteur

• Deux machines virtuelles – AVM1 (AS1 et AS2)

– AVM2 (AS3)

Code source (.as)

Pseudo-code (.swf)

Compilation

Exécution

3

Technologies associées

• Action Script

– Langage de programmation

• Flash

– Player de fichiers « swf » (machine virtuelle)

• Flex

– Encapsulation dans des pages Web

• AIR

– Application « desktop »

4

Environnement de développement minimum

• FlashDevelop 5.0.1

– Windows

– Les API standard

– Un compilateur, débogueur, frameworks (Flex)…

• Java

5

Mots clés réservés en As3

as break case catch class const continue

default delete do else extends false finally

for function if implements import in instanceof

interface internal is native new null package

private protected public return super switch this

throw to true try typeof use var

void while dynamic each finale get include

namespace native override set static abstract boolean

byte cast char debugger double enum export

float goto intrinsic long prototype short synchronized

throws to transient type virtual volatile

6

Les types de données fondamentaux

• String : une valeur textuelle

• Trois types de données numériques – Number : toutes les valeurs numériques (y

compris les nombres à virgule)

– int : un nombre entier sans fraction

– uint : un nombre entier « non signé » (uniquement les nombres positifs)

• Boolean : une valeur vrai ou fausse

• Object : classe mère à toutes les autres classes

7

Les types de données fondamentaux

• Valeurs par défaut

Type de données Valeur par défaut

Boolean false

int 0

Number NaN

String null

uint 0

Object null

* (non typé) undefined

Toutes les autres classes, y compris celles définies par l’utilisateur null

8

Eléments syntaxiques

• Sensible aux majuscules et minuscules

• Instruction simple, terminée par « ; »

• Instruction composée, encadrée par « { } »

• Déclaration d’un variable, mot clé « var »

• Déclaration d’une constante, mot clé « const »

• Commentaires : « // » ou « /*..*/ »

9

Fonction trace

• Pour afficher des données sur la sortie standard : trace(..);

• Résultat de l’affichage :

10

Opérateurs et priorités

[] Initialise un tableau {x:y} Initialise un objet

() Regroupe des expressions f(x) Appelle une fonction

new Appelle un constructeur x.y x[y] Accède à une propriété

++ Incrémentation -- Décrémentation

+ Uniaire + - Unaire - (négation)

! Non logique delete Supprime une propriété

typeof Renvoie les informations de type void Renvoie une valeur non définie

* Multiplication / Division

% Modulo + Addition

- Soustraction

11

Opérateurs et priorités

< Inférieur à > Supérieur à

<= Inférieur ou égal à >= Supérieur ou égal à

as Vérifie le type de données in Vérifie les propriétés des objets

instanceof Vérifie la chaine de prototype is Vérifie le type de données

== Egalité != Inégalité

&& ET logique || OU logique

= Affectation *= Affectation de multiplication

/= Affectation de division %= Affectation modulo

+= Affectation d’addition -= Affectation de soustraction

12

Opérateurs (précisions)

• is

• instanceof

• as

13

Instructions conditionnelles

• if .. else .. • swicth

14

Boucles

• for

• while

• do..while

• for..in

• for..each..in

15

Fonctions

• Définition sous forme d’instruction

• Définition sous forme d’expression (littéral de fonction ou fonction anonyme)

Privilégier les définitions sous forme d’instruction

16

Fonctions

• Renvoi de valeurs

• Fonctions imbriquées

17

Fonctions

• Passage de paramètre

– Tout est passé en référence sauf les types « primitifs » : Boolean, Number, int, uint et String

– Valeurs par défaut

– Paramètre « … » (le reste) :

18

Fonctions

• Méthodes vs fonctions closures

– Méthode : définie comme partie d’une définition de classe ou associée à l’occurrence d’un objet.

– Fonction closure : définie de toute autre façon

• Exemples : fonction globale, fonction dans une méthode…

• Contient un instantané de son environnement lexical.

19

Classes

• Définition d’une classe

• Définition d’une classe dans un package

• Attributs de classe : dynamic, final, internal, public

20

Classe

• Attributs de propriété (attributs, méthodes) – internal (par défaut) : Visible pour les références

au sein d’un même package

– private : Visible pour les références au sein d’une même classe

– protected : Visible pour des références au sein d’une même classe et de classes dérivées

– public : Visible pour des références en tous lieux

– static : Spécifie qu’une propriété appartient à la classe et non pas aux occurrences de la classe

21

Classe

• Le constructeur

• Méthodes accesseur get et set

22

Classe

• Enumération

23

Interfaces

• Une interface est une collection de déclarations de méthodes

• Définition d’une interface

24

Interfaces

• Implémentation d’une interface

• Contrainte lors de l’implémentation – Utiliser l’identificateur de contrôle public – Utiliser le même nom, le même nombre de

paramètres et type de données et le même type de retour que la méthode de l’interface

25

Héritage

• Les mots clés extends et override

26

Héritage

• Contrainte liées à la redéfinition de méthodes

– Les méthodes statiques ne sont pas héritées et ne peuvent donc pas être redéfinies.

– La méthode redéfinie ne doit pas être déclarée avec le mot-clé final ou private dans la classe mère.

– La méthode de redéfinition doit avoir le même niveau de contrôle d’accès que celle de la classe de base.

– La méthode redéfinie doit utiliser le même nom, le même nombre de paramètres et type de données et le même type de retour que celle de la classe mère.

27

Héritage

• Héritage et interfaces

• Instruction super

28

Gestion des évènements

• Trois éléments importants

– La source : quel objet est concerné par l’évènement ?

– L’évènement : que doit-il se passer, à quel événement doit-on répondre ?

– La réponse : quelles actions doivent être exécutées lorsque l’évènement se produit ?

29

Processus de gestion d’événement

Flash Player

myButton:Button Listeners: • function1() • function2() • eventResponse()

eventObject:MouseEvent target : myButton type : MouseEvent.CLICK …

30

top related