« AS3 - Survol du langage ActionScript » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 49 : Ligne 49 :
  var volumeBalle:Int = 10 // par défaut le volume de la balle est de 10
  var volumeBalle:Int = 10 // par défaut le volume de la balle est de 10
:* Les commentaires de plusieurs lignes commencent par une barre oblique et un astérisque (/*) et se terminent pas un astérisque et une barre oblique (*/), par exemple:
:* Les commentaires de plusieurs lignes commencent par une barre oblique et un astérisque (/*) et se terminent pas un astérisque et une barre oblique (*/), par exemple:
<source lang="xml">
  /* Début de l'explication
  /* Début de l'explication
  ....
  ....
  */
  */
</source>


; Respect de la casse (Angl. "case")
; Respect de la casse (Angl. "case")
Ligne 68 : Ligne 70 :
; Syntax à points
; Syntax à points
: Comme vous allez voir plus tard, l’opérateur point (.) permet d’accéder aux propriétés et aux méthodes d’un objet. La syntaxe à point vous permet de vous rapporter à une méthode ou à une propriété de classe à l’aide d’un nom d’occurrence, suivi par l’opérateur point et le nom de la méthode ou de la propriété. Par exemple
: Comme vous allez voir plus tard, l’opérateur point (.) permet d’accéder aux propriétés et aux méthodes d’un objet. La syntaxe à point vous permet de vous rapporter à une méthode ou à une propriété de classe à l’aide d’un nom d’occurrence, suivi par l’opérateur point et le nom de la méthode ou de la propriété. Par exemple
<source lang="actionscript">
  // donne la propriété position x de l'objet "balleRouge"
  // donne la propriété position x de l'objet "balleRouge"
  balleRouge.x  
  balleRouge.x  
  // début du dessin, l'objet dans la propriété graphics lance la méthode beginFill
  // début du dessin, l'objet dans la propriété graphics lance la méthode beginFill
  balleRouge.graphics.beginFill(0xFF0000)  
  balleRouge.graphics.beginFill(0xFF0000)  
</source>
; Parenthèse
: On peut utiliser les parenthèses pour grouper des éléments dans une expression mathématique ou logique. Rien à signaler ici.
: Un usage très spécial en AS3 est le suivant: ous pouvez utiliser des parenthèses avec l’opérateur virgule (,) pour évaluer une série d’expressions et renvoyer le résultat de l’expression finale, comme indiqué dans l’exemple suivant :
<source lang="xml">
var a:int = 2;
var b:int = 3;
trace((a++, b++, a+b)); // 7
</source>
: Finalement, on le verra plus loin, on utilise des parenthèses pour transmettre un ou plusieurs paramètres à des fonctions ou à des méthodes. Donc un nom suivi d'une parenthèse indique qu'on invoque une méthode ou une fonction.
trace("bonjour");


== Eléments de scripting pour la timeline ==
== Eléments de scripting pour la timeline ==
Ligne 81 : Ligne 96 :


=== Données et variables ===
=== Données et variables ===


=== Fonctions ===
=== Fonctions ===

Version du 28 octobre 2010 à 15:44

Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.

<pageby nominor="false" comments="false"/>

Introduction

Historique et positionnement de AS3

Le langage ActionScript a été conçu au départ comme une simple série de commandes que l'on pouvait attacher à des boutons ou des images. Ce langage qu'on pouvait résumer en quelques pages est dévenu un véritable language de scripting (avec beaucoup de librairies incluses).

  • Flash 2: Contient juste 5 commandes: play", "stop", "getURL", and "gotoAndPlay". Ce petit langage était un langage séquenciel.
  • Flash 4 (2000/2003): ActionScript "1.0". Contient des boucles, conditionnels, variables etc., il s'agit d'un début de langage procédural
  • Flash 7 (2003-2006): ActionScript 2.0. Proche de la proposition ECMAScript de Netscape].
  • Flash 9 (2006): ActionScript 3.0 et un un langage orienté objets.

La syntaxe de base de ActionScript 3.0 (AS3) est dérivée de ECMASCript. En fait il s'agit d'une extension qui était basé sur la proposition abandonné de ECMAScript édition 4. Certains éléments du langage sont standardisés, par exemple:

La logique de la programmation des interfaces (GUI) en ActionScript ressemble beaucoup à celle qui est préconisé pour JavaScript (encore peu utilisée dans les faits). La logique de développement de programmes larges, par contre, ressemble plus à la logique du développement avec Java.

Selon le manuel Introduction à ActionScript 3.0 (consulté le 27 oct. 2010), «ActionScript est le langage de programmation des environnements d’exécution d’Adobe® Flash® Player et Adobe® AIR™. Il assure l’interactivité, le traitement des données et bien d’autres fonctions pour le contenu Flash, Flex et AIR et les applications associées. ActionScript s’exécute dans la machine virtuelle ActionScript (AVM), un composant de Flash Player et AIR. Le code ActionScript est généralement compilé en pseudo-code (sorte de langage de programmation écrit et compris par les ordinateurs) par un compilateur, tel celui intégré à Adobe® Flash® Professional ou celui intégré à Adobe® Flash® Builder™ et fourni dans le kit de développement SDK d’Adobe® Flex™. Le pseudo-code est intégré aux fichiers SWF, qui sont exécutés par Flash Player et AIR.»

On peut utiliser le langage ActionScript de plusieurs façons, notamment

  • Pour scripter la timeline de Flash: AS3 est utilisé de façon plutôt procédural et il ne faut pas connaître les principes de la programmation orientée-objets. C'est l'usage typique du "Flash Designer".
  • En ActionScript pur: Un programme est défini dans éditeur de programmation y compris celui de Flash Professional (CS3/4/5), ensuite compilé. AS3 est utilisé comme un langage de programmation "normal" (comme Java par exemple)
  • Avec Flex: Inséré dans Mxml, soit avec un éditeur de son choix, soit avec l'IDE Flash Builder/Flex Builder. La différence avec "ActionScript put" est qu'on peut profiter d'un méchansime simple et puissant pour définir un GUI et d'une bibliothèque de composants.

On peut combiner ces trois types d'utilisation. Par exemple, il arrive souvent aux programmeurs ActionScript d'utiliser des objets dessinés avec Flash Professional.

Le principe de la programmation

Un programme informatique peut se résuméer par deux aspects principaux :

  • Il est constitué d’une série d’instructions ou d’étapes que l’ordinateur doit effectuer une après les autres.
  • Chaque étape implique à terme la manipulation d’informations ou de données.

On utilise souvent l'expression:

programme = algorithme + données

Voici un exemple fourni par Adobe qui illustre ce principe:

Par nature, le seul rôle d’une instruction de programme consiste à manipuler quelques données stockées dans la mémoire de l’ordinateur. Prenons un exemple simple : vous indiquez à l’ordinateur de faire la somme de deux nombres et de stocker le résultat en mémoire. Dans un cas de figure plus compliqué, imaginez un rectangle dessiné sur l’écran ; vous rédigez un programme pour le déplacer à un autre emplacement de l’écran. L’ordinateur mémorise certaines informations relatives au rectangle : les coordonnées x, y de sa position, sa largeur et sa hauteur, sa couleur, etc. Chacune de ces informations est stockée dans la mémoire de l’ordinateur. Un programme de déplacement du rectangle comporterait des étapes telles que « régler la coordonnée x sur 200 ; régler la coordonnée y sur 150. » En d’autres termes, il définirait de nouvelles valeurs pour les coordonnées x et y. En arrière-plan, l’ordinateur manipule ces données pour convertir les nombres en images visibles à l’écran. Il suffit cependant de savoir que le processus de « déplacement d’un rectangle à l’écran » implique uniquement la modification de données dans la mémoire de l’ordinateur.

La syntaxe de AS3

Chaque programme informatique doit scrupuleusement respecter un certaine syntaxe, car l'ordinateur est à priori ce que peut appeller un "processeur syntaxique". Dans ActionScript 3 il faut notamment respecter les règles suivantes. Vous pouvez revenir plus tard pour les détails.

Commentaires
Les commentaires servent à documenter un programme et ne seront pas interprétés par la machine. Il existe deux types de commentaires: les commentaires d’une ligne et les commentaires de plusieurs lignes.
  • Les commentaires d’une ligne commencent par deux barres obliques (//) et continuent jusqu’à la fin de la ligne, par exemple
var volumeBalle:Int = 10 // par défaut le volume de la balle est de 10
  • Les commentaires de plusieurs lignes commencent par une barre oblique et un astérisque (/*) et se terminent pas un astérisque et une barre oblique (*/), par exemple:
 /* Début de l'explication
 ....
 */
Respect de la casse (Angl. "case")
Le nom MaBalle n'est pas identique à maBalle
Mots réservés
Il existe un certain nombre de mots réservés et que vous n'avez pas le droit d'utiliser dans vos noms de variables, de fonctions etc. En fait, le manuel distingue trois variantes, mais on conseille simplement d'éviter tous les mots de la liste suivante:
  • abstract, as, boolean, break, byte, case, cast, catch, char, class, const, continue, debugger, default, delete, do, double, dynamique, each, else, enum, export, extends, false, final, finally, float, fonction, for, get, goto, if, implements, import, in, inclure, instanceof, interface, internal, intrinsic, is, long, namespace, native, native, new, null, override, package, private, protected, prototype, public, return, set, short, static, super, switch, synchronized, this, throw, throws, to, to, transient, true, try, type, typeof, use, var, virtual, void, volatile, while, with
Instructions séparées par des points virgules ou des fins de ligne
Vous pouvez utiliser le point-virgule (;) à la fin d’une instruction. Si vous omettez ce caractère, le compilateur suppose que chaque ligne de code représente une instruction distincte. On suggère de placer chaque instruction sur une ligne séparée et d'utiliser les ";". Votre code sera plus intelligible...
Littéraux
ces objets sont des valeurs qui apparaissent "tel quels" comme par exemple les nombres, ou encore les valeurs booléens true/false
Syntax à points
Comme vous allez voir plus tard, l’opérateur point (.) permet d’accéder aux propriétés et aux méthodes d’un objet. La syntaxe à point vous permet de vous rapporter à une méthode ou à une propriété de classe à l’aide d’un nom d’occurrence, suivi par l’opérateur point et le nom de la méthode ou de la propriété. Par exemple
 // donne la propriété position x de l'objet "balleRouge"
 balleRouge.x 
 // début du dessin, l'objet dans la propriété graphics lance la méthode beginFill
 balleRouge.graphics.beginFill(0xFF0000)
Parenthèse
On peut utiliser les parenthèses pour grouper des éléments dans une expression mathématique ou logique. Rien à signaler ici.
Un usage très spécial en AS3 est le suivant: ous pouvez utiliser des parenthèses avec l’opérateur virgule (,) pour évaluer une série d’expressions et renvoyer le résultat de l’expression finale, comme indiqué dans l’exemple suivant :
 var a:int = 2; 
 var b:int = 3; 
 trace((a++, b++, a+b)); // 7
Finalement, on le verra plus loin, on utilise des parenthèses pour transmettre un ou plusieurs paramètres à des fonctions ou à des méthodes. Donc un nom suivi d'une parenthèse indique qu'on invoque une méthode ou une fonction.
trace("bonjour");

Eléments de scripting pour la timeline

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Lorsqu'un "Flash designer" parle de ActionScript, il fait référence à son usage simplifié pour scripter des timelines dans l'outil Flash Developper (CS3/4/5/etc).

Ainsi il ne va jamais créer des artéfacts complexes comme des classes, mais il les utilisera quand-même comme nous allons voir. Ci-dessous on introduit quelques éléments de programmation.

Données et variables

Fonctions

Décisions et boucles

Utilisation d'objets

Eléments de la programmation orientée objets

(à faire)

Liens

Chez Adobe
Wikipedia et sites soeurs
  • ActionScript (Wikipedia Anglais, la version française n'est pas très bonne en oct 2010)


Remerciements et modification du copyright

Sinon, on conseille aussi le livre suivant (en Anglais) pour une introduction douce à ActionScript:

  • Gary Rosenzweig, Flash Game University, Que (1st Ed.). ISBN 0789737027. All code in actionscript 3. So far the best beginner's text I found. Environment is CS3 (also can be used with CS4 and CS5) - Daniel K. Schneider 10:16, 4 June 2010 (UTC)