ActionScript 3.0, l'essentiel sous la main Adobe Flash Accueil
Fiches
Boutique
Contact
Créer une fonction
En ActionScript 3.0, vous allez jongler entre des fonctions et des évènements :
- Les fonctions classiques :

function maFonction()
{
//actions…
}
maFonction(); //Exécute la fonction 'maFonction'

Vous pouvez faire passer des paramètres dans les fonctions. Dans l'exemple ci-dessous, je vais transmettre à la fonction maFonction la valeur de maVariable à chaque fois que je l'exécute. Cette valeur peut alors être réutilisé dans la fonction via la nomenclature que vous lui avez donné entre paranthèses.

function maFonction(e)
{
//actions…
monObjet.x = e; //on attribut la valeur de 'maVariable' à la position sur X de 'monObjet'.
}
maFonction(maVariable); //Exécute la fonction 'maFonction'

Pour faire passer plusieurs variables, mettez les une derrière les autres, en les séparants avec des virgules :

function maFonction(e1,e2,e3)
{
//actions…
monObjet.x = e1; //on attribut la valeur de 'maVariable1' à la position sur X de 'monObjet'.
monObjet.y = e2; //on attribut la valeur de 'maVariable2' à la position sur Y de 'monObjet'.
monObjet.z = e3; //on attribut la valeur de 'maVariable3' à la position sur Z de 'monObjet'.
}
maFonction(maVariable1,maVariable2,maVariable3); //Exécute la fonction 'maFonction', en envoyant 3 paramètres

Si, pour une raison ou une autre, vous n'avez besoin d'envoyer que 2 paramètres à une fonction censé en recevoir 3, alors faite :

function maFonction(e1,e2,e3)
{
//actions…
monObjet.x = e1; //on attribut la valeur de 'maVariable1' à la position sur X de 'monObjet'.
monObjet.y = e2; //on attribut la valeur de 'maVariable2' à la position sur Y de 'monObjet'.
monObjet.z = e3; //ne reçoit aucun paramètre, puisque e3 = null
}
maFonction(maVariable1,maVariable2,null); //Exécute la fonction 'maFonction', en envoyant 2 paramètres

Dans se cas si, Flash risque de vous retourner une erreur. Pensez donc à mettre une condition de présence lorsque vous utiliser les variables d'une fonction.

function maFonction(e1,e2,e3)
{
//actions…
monObjet.x = e1; //on attribut la valeur de 'maVariable1' à la position sur X de 'monObjet'.
monObjet.y = e2; //on attribut la valeur de 'maVariable2' à la position sur Y de 'monObjet'.
if(e3 != null)
{
monObjet.z = e3; //ne reçoit aucun paramètre, puisque e3 = null
}
}
maFonction(maVariable1,maVariable2,null); //Exécute la fonction 'maFonction', en envoyant 2 paramètres


- Les fonctions liée à un évènement :

import flash.events.Event; //Import de la classe "Event"

function maFonction(e:Event):void
{
//actions…
e.target.width = 50; //on attribut la valeur 50 pixel à la largeur de 'monObjet'.
}
monObjet.addEventListener(Event.ENTER_FRAME, maFonction); //On lie la fonction 'maFonction' à l'objet 'monObjet'

Ici, on attribut un évènement (addEventListener) à un objet (monObjet = nom d’occurrence de mon objet, un clip), en lui disant d’exécuter une fonction (maFonction) à chaque image de l’animation (Event.ENTER_FRAME). En modifiant ce dernier paramètre (Event.ENTER_FRAME), on peut choisir différente manière d’exécuter une fonction. Nous verrons ça plus en détails dans les parties "Créer une action sur un bouton" et "Créer une action sur un clip".

Placer un nom d'occurrence

Ici, la fonction (maFonction) est liée à un évènement du type Event.
Le type d'évènement est spécifié dans la liaison à l'objet : monObjet.addEventListener(Event.ENTER_FRAME, maFonction);
Il faut également le spécifier dans la fonction entre parenthèses : function maFonction(e:Event):void

Le e est le nom de la variable qui sert à intervenir sur les objets (Ex : monObjet) étant reliés à une fonction (maFonction) par un évènement (addEventListener). Ici, c’est monObjet qui est relié à la fonction. On peut donc accéder aux propriétés de monObjet comme ceci :

e.target.x //Position de 'monObjet' sur l'axe de X
e.target.rotationY //Rotation de 'monObjet' sur l'axe de Y
e.target.width //Largeur de 'monObjet'
e.target.name //Nom de 'monObjet'

Ainsi, si la fonction (maFonction) est reliée à plusieurs objets, on peut donc agir sur leurs propriétés sans distinction. Si au contraire on souhaite agir sur l’un de ces objets en particulier, il suffi de remplacer le e.target par son nom d’occurrence. Ici, on remplacerait e.target par monObjet. Sa donnerai donc :

import flash.events.Event; //Import de la classe "Event"

function maFonction(e:Event):void
{
//actions…
monObjet.width = 50; //on attribut la valeur 50 pixel à la largeur de 'monObjet'.
}
monObjet.addEventListener(Event.ENTER_FRAME, maFonction); //On lie la fonction 'maFonction' à l'objet 'monObjet'

Si jamais vous avez besoin d'exécuter une fonction liée à un évènement, mais de façon direct sans passer par l'évènement en question (donc comme pour une fonction classique) :

import flash.events.Event; //Import de la classe "Event"

function maFonction(e:Event):void
{
//actions…
}
maFonction(null); //Exécute la fonction 'maFonction'

ATTENTION : Dans se cas, la variable e correspond à null, et ne contient donc aucune information. Vous ne pouvez donc pas utiliser e.target.
Commentaire(s)
Aucun.