Le langage ActionScript > A propos des variables > Domaine d'une variable

 

Domaine d'une variable

Le « domaine » d'une variable fait référence au domaine dans lequel la variable est connue et peut être référencée. Il existe trois types de domaine de variable dans ActionScript :

Les variables locales sont disponibles dans leur propre bloc de code (délimité par des accolades).

Les variables de scénario sont disponibles dans n'importe quel scénario si vous utilisez un chemin cible.

Les variables globales sont disponibles dans n'importe quel scénario, même si vous n'utilisez pas de chemin cible.

Vous pouvez utiliser l'instruction var pour déclarer une variable locale dans un script. Par exemple, les variables i et j sont souvent utilisées comme compteurs de boucles. Dans l'exemple suivant, i est utilisée comme variable locale et existe uniquement dans la fonction constructJours :

function constructJours() {
	var i;
	for( i = 0; i < tableauDeMois[month]; i++ ) {

		_root.Jours.attachMovie( "affichageDesJours", i, i + 2000 );

		_root.Jours[i].num = i + 1;
		_root.Jours[i]._x = colonne * _root.Jours[i]._width;
		_root.Jours[i]._y = ligne * _root.Jours[i]._height;

		colonne = colonne + 1;

		if (colonne == 7 ) {

			colonne = 0;
			ligne = ligne + 1;
		}
	}
}

Les variables locales peuvent également empêcher les conflits de noms qui pourraient provoquer des erreurs dans votre animation. Par exemple, si vous utilisez nom comme variable locale, vous pouvez l'utiliser pour stocker un nom d'utilisateur dans un contexte et une occurrence de clip dans un autre, ces variables fonctionnant dans des domaines distincts et évitant ainsi les conflits.

Il est toujours judicieux d'utiliser des variables locales dans le corps d'une fonction pour que celle-ci puisse agir en tant que partie de code indépendante. Une variable locale n'est modifiable qu'au sein de son propre bloc de code. Si une expression d'une fonction utilise une variable globale, un élément extérieur pourrait modifier sa valeur, ce qui modifierait la fonction.