ActionScript 3 – Programmation séquentielle et orientée objet
192
trouve sa déclaration. Ce qui nous amène à aborder la notion très importante de portée
d’une variable.
Prenez garde à la fonction !
Considérez attentivement le script ci-dessous :
Fichier de référence : Chapitre7/Portee1.fla
var nomAuteur:String = "TARDIVEAU";
btValidation.addEventListener(MouseEvent.MOUSE_DOWN,fenetreSortie);
function fenetreSortie (evt:MouseEvent) {
trace(nomAuteur);
}
La variable nomAuteur a été déclarée dans le corps principal du script en-dehors de toute
fonction. Elle est visible dans tout le script, à tous les niveaux, sur toutes les lignes
d’instructions. Nous pouvons donc nous y référer dans la fonction fenetreSortie().
Dans ce deuxième exemple, nous allons déclarer une variable dans la fonction fenetreSortie() et tenter d’y faire référence en dehors de celle-ci.
btValidation.addEventListener(MouseEvent.MOUSE_DOWN,fenetreSortie);
function fenetreSortie(evt:MouseEvent) {
var nomAuteur:String = "TARDIVEAU";
trace(nomAuteur);
}
trace(nomAuteur);
Au moment de la publication de l’animation, le compilateur de Flash nous renvoie un
message d’erreur.
Comme la variable nomAuteur est déclarée entre les accolades { } délimitant la fonction
fenetreSortie(), elle n’est visible que dans cette partie du script. Elle n’est donc pas
reconnue en dehors de la fonction et toute tentative d’y accéder génère une erreur.
Ce qu’on appelle la portée d’une variable est la partie du code dans laquelle cette variable
est visible, donc accessible. La variable nomAuteur du premier exemple a une portée
globale, alors que celle du deuxième exemple a une portée réduite à la fonction fenetreSortie().
Remarque
btValidation est le nom d’une occurrence de type Clip sur la scène.
1120: Accès à la propriété non définie nomAuteur.
Précédent

- 220/426

Suivant