Sommaire
Introduction
Qu'est-ce que l'Action Script?
Pré Requis
Conventions syntaxiques de l'Action Script
Généralités
Intégration de code dans lecas d'un bouton
Intégration de code dans lecas d'un MovieClip
Commentaires
La structure de base de l'Action Script
Les types de données
Les opérateurs
Les opérateurs arithmétiques
Les opérateurs de comparaison
Les opérateurs logiques
Les opérateurs d'égalité
Les opérateurs au niveau dubit
Les opérateurs d'affectation
Instructions de contrôle
Structure de condition if
L'instruction else
L'instruction else if.
Structure de switch
La boucle while
La boucle do
while
La boucle for
L'instruction break
Les propriétés
Les propriétés éditables
Les propriétés non éditables
Accès aux objets
Introduction
| L'action Script est le langage de script de macromedia Flash. Le langage a évolué avec le logiciel qui en est à sa version 6 (MX). Il est utilisé pour contrôler les animations, gérer des fichiers XML, communiquer avec des scripts externes (écrits en PHP par exemple), etc. |
Qu'est-ce que l'Action Script?
L'action Script est unlangage développé par Macromédia pour son logiciel Flash.
Il permet de contrôler lesanimations flash, gérer des flux audio, vidéo, les fichiers XML, etc.
Le langage n'est pas unlangage compilé; C'est un langage de script encapsulé dans l'animation (auformat swf).
Les animations flash tournentsur tous les systems disposant du plugin développé par Macromédia, ce quiinclus Windows, Mac OS, Linux et autre Unix.
Pré Requis
L'action Script étant unlangage relativement simple et logique, aucunes connaissances préalable dulangage n'est requise pour aborder cet ouvrage. Toutefois, la connaissanced'autres langages tel que le JavaScript, le C ou le C++ en favorisera lacompréhension.
Notez que pour aborderl'Action Script, une connaissance du logiciel Flash est requise.
Ce livre sadresseessentiellement aux utilisateurs de Flash 6 MX.
Les utilisateurs de versionsantérieurs peuvent rencontrer des fonctions inconnues de leurs versions.
Conventionssyntaxiques de l'Action Script
| Le code s'intègre dans le panel "actions". Pour ouvrir ce panel, sélectionnez l'objet concerné et pressez F9. |
Généralités
Chaque instruction se terminepar un ; .
L'action Script est sensibleà la case. Pour éviter d'aller dans le menu des fonctions toutes les 2 minutesafin de retrouver l'orthographe, il faut savoir que généralement, la premièrelettre d'un nom de fonction est rarement en majuscule. Par contre la premièrelettre des autres parties du nom sont souvent en majuscule. Exemple : onClipEvent().
Dans le cas des frames, onintroduit le code directement dans le panel "Actions", mais onutilise on() dans le cas d'un bouton et onClipEvent() dans le cas d'unMovieClip.
| Dans les exemples qui suivent, je nindiquerai pas la manipulation à faire pour tester le code, mais uniquement le listing. Afin de préparer et tester ces exemples, vous pouvez créer un bouton et un clip en créant 2 formes que vous transformerez en clip ou bouton grâce à la touche F8 et en appliquant le code de lexemple à cet élément. (onClipEvent() pour le clip, on() pour le bouton) |
Intégration de code dans le cas d'un bouton
On ne peut pas mettre du codedirectement sur le bouton;
En effet, le bouton aplusieurs états (cliqué, relâché, etc.) et il faut préciser a flash pour quelaction va correspondre le code.
On() prend un seul argument.
Le code va se situer entreles signes { et }.
Voici les argument pris paron() et leur signification.
press Boutongauche de la souris enfoncé.
release Cliquesur le bouton (cliqué relâché).
releaseOutside Cliquesur le bouton, relâché a l'extérieur.
rollOver Lecurseur passe au dessus du bouton sans cliquer.
rollOut Lecurseur est passé au dessus du bouton.
dragOver GlisséDéplacé sur le bouton.
dragOut GlisséDéplacé en dehors du bouton.
keyPress"nom_de_touche" La touche "nom_de_touche" à étépressé.
On (rollOver) { _root.gotoAndPlay(2);
}
Intégration de code dans le cas d'un MovieClip
onClipEvent() prend un seulargument.
Le code va se situer entreles signes { et }.
Voici les argument pris paronClipEvent() et leur signification.
load le MovieClip est chargé.
unLoad Le MovieClip est déchargé.
enterFrame Mouvement de la souris
mouseDown Clique de la souris sans relâcher
mouseUp relâchement du clique
mouseMove la souris bouge.
keyUp on lâche la touche.
keyDown onappui sur la touche.
OnClipEvent (load) { _root.gotoAndPlay(2);
}
Commentaires
L'Action Script utilise descommentaires familiers aux développeurs C, C++, PHP, etc.
Les commentaires se font de 2manières.
En effet, on peut placer descommentaires sur une seul ligne, ou sur un nombre de ligne illimité.
Les commentaires sur uneligne son précédés dun double slash. (Voir exemple 1.3) alors que lescommentaires sur plusieurs lignes sont placés entre /* et */ (exemple 1.4)
Commentaire sur une ligne :
// Suivi du commentaire
Commentaire sur plusieurs lignes :
/*
Commentaire
*/
La structure de base de l'Action Script
Les types de données
La déclaration des variablesn'est pas obligatoire mais fortement conseillé.
Pour déclarer une variable,on utilise la fonction var.
Utilisation : varnom_de_variable;
Le nom de la variable ne doitpas être un nom réservé (TRUE, function, release, _root, etc.) et doitcommencer par une lettre ou un espace souligné _.
Une variable n'a pas de type défini et peut donc contenirindifféremment du texte, un nom entier, un nombre décimal, un booléen, etc.
Je ne vais pas définir lesentiers et les décimaux.
Le booléen est la plus simpledes types de variable; il propose 2 valeurs : TRUE ou FALSE.
Ce type de valeur estretourné par de nombreuses fonctions, indiquant le bon fonctionnement del'opération (TRUE) ou non (FALSE).
on (release) { // Déclaration des variables
var var1_entier;
var var2_float;
var var3_text;
var var4_bool;
/*
Attribution
Des
Valeurs
*/
var1_entier = 10;
var2_float = 3.14;
var3_text = "ceci est une variable de type texte";
var4_bool = TRUE;
}
on (release) { // noms de variables faux et justes
var 22; // erreur!
var TRUE; // erreur!
var _nom; // OK!
var XXX; // OK!
var 22erreur; // erreur!
var aa.bb; // erreur!
}
on (release) { // Déclaration des variables
var nom;
var phrase;
/*
Attribution
Des
Valeurs
*/
nom = "Julien";
phrase = "mon nom est " + nom;
}
Lorsque l'on manipule leschaînes de caractères, on est appelé à utiliser des caractères spéciaux tel quela tabulation, le guillemet, le retour à la ligne, etc.
Pour cela, il y a lesséquences d'échappements.
\n sauteune ligne (<BR> html
)
\t tabulation
\r retourà la ligne
\\ Antislash
\" guillemet
| Il existe une fonction qui permet dafficher une information tel que le contenue dune variable, le résultat dune fonction, etc
Cette fonction est très utile pour le debuggage car elle affiche linformation dans une console externe à lanimation. Cette fonction est trace(). Exemple dutilisation : onClipEvent(load) { var test = "voici un test"; trace(test) ; } |
Les opérateurs
Les opérateurs arithmétiques
| opérateur | opération |
| + | addition |
| - | soustraction |
| * | multiplication |
| / | division |
| ++ | incrémentation |
| -- | décrémentation |
Les opérateurs de comparaison
| opérateur | opération |
| >> | plus grand que |
| << | plus petit que |
| >= | supérieur ou égal |
| <= | inférieur ou égal |
Les opérateurs logiques
| opérateur | opération |
| && | AND |
| || | OR |
| ! | NOT |
Les opérateurs d'égalité
| opérateur | opération |
| == | égalité |
| === | égalité stricte |
| != | inégalité |
| !== | inégalité strict |
les opérateurs au niveau du bit
| opérateur | opération |
| & | AND binaire |
| | | OR binaire |
| ^ | XOR binaire |
| ~ | NOT binaire |
| >> | décalage vers la droite |
| << | décalage vers la gauche |
| >>> | décalage stricte vers la droite |
Les opérateurs d'affectation
| opérateur | opération |
| = | affectation |
| += | addition et affectation |
| -= | soustraction et affectation |
| /= | division et affectation |
| *= | multiplication et affectation |
| %= | modulo et affectation |
| <<= | décalage à gauche et affectation |
| >>= | décalage à droite et affectation |
| >>>= | décalage stricte à droite et affectation |
| &= | AND binaire et affectation |
| |= | OR binaire et affectation |
| ^= | XOR binaire et affectation |
Instructions de contrôle
| les instructions de contrôle permettent de contrôler et de vérifier le bon déroulement du programme. |
Structure de condition if
La structure if est utilisée pour vérifier une condition.
Si la condition est remplie,le code est exécuté, sinon, la fonction renvoie FALSE et le code est ignoré.
Lexpression est placée entreparenthèses, associée à un opérateur compatible.
if (condition) { // Code à exécuter
}
Remarque
| Le bloc if exécute le code si la condition renvoie TRUE. On peut donc se passer d'opérateurs pour tester un booléen. |
onClipEvent (load) { var bool;
bool = TRUE;
if (bool) { // si bool = true, alors pas besoin de préciser \"== true\" // Code à exécuter.
}
}
onClipEvent (load) { /*
Utilisation d\'un opérateur à un seul opérande :
Le NOT Logique
*/
var bool;
bool = FALSE;
if (!bool) { // code à exécuter.
}
}
L'instruction else
L'instruction if, bien que fort pratique, reste limité.
On peut ainsi l'étendre grâceà else qui permet d'exécuter un autre bloc de code si la condition n'estpas vérifiée.
onClipEvent (load) { //utilisation du else dans la condition.
var chiffre;
chiffre = 85;
if (chiffre >= 85) { // code à exécuter si condition vérifié.
} else { // code à exécuter si condition non vérifié.
}
}
L'instruction else if.
L'instruction else if permet, si la condition n'estpas vérifiée, de tester une autre condition.
onClipEvent (load) { //utilisation du else if dans la condition.
var chiffre;
chiffre = 85;
if (chiffre >= 85) { // code à exécuter si condition 1 vérifié.
} else if (chiffre << 85) { // code à exécuter si condition 2 vérifié.
} else { // code à exécuter si aucune condition n\'est vérifié.
}
}
Structure de switch
switch est aussi unestructure de condition mais il ne peut teste qu'une seul valeur à la fois etexécutera un bloc de code différent pour chaque valeur.
on (release) { switch (1+1) { case 1:
// bloc si le résultat est 1.
break;
case 2:
// bloc si le résultat est 2.
break;
case 3:
// bloc si le résultat est 3.
break;
}
}
Linstruction break sert àréguler l'exécution du code; si il n'etait pas présent, les instructionssuivant celle vérifiée seraient exécutées aussi.
La boucle while
La boucle while sert à exécuter le code tant que lacondition est vérifiée.
on (release) { var i;
i = 1;
while (i<=10) { // tant que i est plus petit que 10 i++; //incrémentation
}
}
La boucle do
while
La boucle do
while est presque identique à while dans lafonction, mais pas dans la structure.
Elle sert à exécuter le code tant que la condition estvérifiée.
La différence entre while etdo
while, c'est qu'avec la première, si la condition n'est pas vérifié, le codene sera pas exécuté, alors qu'avec do
while, le code sera exécuté au moins unefois.
on (release) { var i;
i = 1;
do { i++;
} while (i<=10);
}
La boucle for
La boucle for sert à exécuterun code un certain nombre de fois.
Sa fonction n'est pas très éloignéede while.
for() demande 3 argumentspour fonctionner :
- valeur de départ
- condition
- valeur suivante
Un exemple est plus parlant
on (release) { var i;
i = 1;
for (i=0;i<=10;i++) { /* pour i=0 et tant que i est plus petit que 10, on incrémente i, on exécute le code et on re-test avec la nouvelle valeur de i
*/
// code à exécuter
}
}
L'instruction break
Nous avons vu break avecl'instruction switch.
break sert à stopperl'exécution du code, mais pas seulement dans un switch.
Il sert à sortir de lafonction ou de l'instruction en cours.
on (release) { var i;
i = 1;
for (i=0;i<=10;i++) { if (i == 5) { break; // si i = 5, on sort de la fonction for.
}
}
}
Les propriétés
Afin d'avoir un total control sur l'animation, flash met àdisposition des développeurs des propriétés, qui servent à modifier l'apparenceou la position d'un bouton, d'un MovieClip.
Les propriétés éditables
| propriétés | fonction |
| _alpha | change l'opacité |
| _focusrect | true = un rectangle jaune apparaît lors de la navigation entre les control avec tab; false = pas de rectangle de sélection. |
| _height | change la hauteur |
| _quality | change la qualité |
| _rotation | change la rotation |
| _soundbuftime | définie en seconde le temps du pre-buffer du son en streaming |
| _visible | 0 = invisible; 1 = visible |
| _width | change la largeur |
| _x | change la position x |
| _y | change la position y |
Les propriétés non éditables
| propriétés | fonction |
| _currentframe | numéro de la frame en lecture |
| _framesloaded | nombre de frames téléchargé |
| _name | nom du clip |
| _target | chemin du clip dans l'animation |
| _totalframes | nombre total de frames |
| _url | url du clip |
Accès aux objets
Une animation flash est constitué d'une multitude d'objetsqui sont les MovieClips, les bouton, le document lui même, etc.
L'action script permet d'accéder à ces objets.
| propriétés | fonction |
| _root | accès à la scène complète |
| _level0 | accès à la scène ou aux objets chargés via loadMovie ou loadMovieNum |
| _parent | accès au MovieClip parent. |
| this | accès à l'objet courrant |
| root.nomdu_movie | accès au MovieClip "nom_du_movie" |
Les objets pouvant être emboîtés les un dans les autrescomme des poupées russes, pour y accéder depuis un objet distant, on doitpréciser le chemin complet de l'objet.
Ouvrez un nouveaudocument.
Créez une forme, pressezF8 et choisissez "Movie Clip".
Sélectionnez le MovieClip ainsi créé, allez dans le panel "propriétés" et mettez"MC1" en nom d'instance.
Double-cliquez sur leMovie Clip et créez une autre forme. Recommencez l'opération précédente etchoisissez "MC2" en nom d'instance.
Créez maintenant un bouton(dessinez une forme, puis F8 >> bouton).
Sélectionnez le bouton,ouvrez le panel "Actions".
Insérez ce code:
on (release) { _root.MC1.MC2._alpha -= 10;
/*
On accède à la propriété _alpha du clip MC2, qui se trouve dans MC1, qui se trouve sur la scène _root.
*/
}
Tutorial écrit par Julien Loutre, alias BlackWizzard.
Diffusion électronique autorisée en létat.
Toute modification doit faire lobjet dun accord écrit delauteur.
Limpression ou la diffusion dans un but lucratif eststrictement interdite sans autorisation préalable.
Contact :
Tel (+33)0615576747
Email blackwizzard@gmail.com
[Collé depuis word]