ActionScript 3 – Programmation séquentielle et orientée objet
194
private function reglageNomAuteur() {
var nomAuteur:String = "TARDIVEAU";
trace("Depuis la fonction 'reglageNomAuteur' : "+nomAuteur);
}
private function afficherNomAuteur() {
trace("Depuis la fonction 'afficherNomAuteur' : "+nomAuteur);
}
}
}
Le code ci-dessus génère une erreur car les fonctions Main() (constructeur) et afficherNomAuteur() tentent d’accéder à une variable dont la portée est limitée. En effet, la variable
nomAuteur a été déclarée et initialisée dans la fonction reglageNomAuteur(), et sa portée se
limite donc au bloc de code contenu entre les accolades private function reglageNomAuteur() { }.
public, private, static
Lorsque vous déclarez des variables dans une classe, vous devez non seulement les
préfixer avec le mot-clé var, mais vous pouvez, et même dans certains cas devez, ajouter
un spécificateur de contrôle d’accès (public, private ou static).
C’est en particulier le cas lorsqu’on travaille avec des classes et des scripts répartis
dans plusieurs fichiers. Il faut alors gérer la portée d’une variable d’un fichier par rapport
à un autre.
Les variables static
Considérons l’exemple suivant, où nous définissons une classe de document nommée
MainCreaTexte() dans laquelle nous déclarons une variable intitulée nomAuteur. Nous aimerions
que cette variable soit accessible à partir d’une autre classe intitulée CreaTexte().
Afin qu’une variable soit accessible depuis une autre classe, il faut habituellement instancier
la classe dans laquelle elle se trouve pour y accéder à partir de l’instance. Dans notre cas,
cela n’est pas possible et pourtant nous souhaitons tout de même atteindre la variable
nomAuteur. Nous allons tout simplement transformer notre variable en variable static afin
d’y avoir accès de n’importe où dès lors qu’on précise en préfixe le nom de la classe.
Fichiers de référence : Portee3.fla, MainCreaTexte.as et CreaTexte.as.
Voici le script de la classe du document Portee3.fla. Vous pouvez constater que nous
avons ajouté le spécificateur de contrôle d’accès static devant le mot-clé var.
1120: Accès à la propriété non définie nomAuteur.
1120: Accès à la propriété non définie nomAuteur.
Rappel
Un bloc de code commence par une accolade ouvrante et se termine par une accolade fermante.
Précédent

- 222/426

Suivant