[Résolu]Utilisation des Setter / Getter
Bonjour,
Je suis actuellement entrain de me former à AS3 par le biais du livre Pratique d'ActionScript 3, que j'ai trouver en téléchargement libre.
Je suis bloquer a une étape importante du Chapitre 8 - Class Joueur.
J'ai bien suivie tout les étape du livre mais je pense qu'il y a a une erreur dans le pdf et que donc cette exemplaire n'était pas la dernière version. :?
Le but de cette partie du cours devais m'apprendre à utiliser la méthodes lecture/ecriture (Getter/Setter) au lieu d'une méthodes d’affectation et de récupération (fonction getNom())
joueur.fla
Code:
1 2 3 4 5 6 7 8 9 10
|
var monJoueur:Joueur = new Joueur("Stevie", "Wonder", 57, "Michigan");
//ok affiche "getNom : Wonder"
trace( "getNom : "+monJoueur.getNom() );
//devrais afficher "Le nom spécifié est trop long"
monJoueur.nom = "UnNomTresTresTresTresTresTresLong";
//devrais afficher "nom : Wonder"
trace( "nom : "+monJoueur.nom ) ; |
joueur.as
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
package {
public class Joueur {
// définition des propriétés de la classe
private var _nom:String;
public var nom2:String;
private var prenom:String;
private var age:int;
private var ville:String;
// fonction constructeur
public function Joueur( pPrenom:String, pNom:String, pAge:int, pVille:String ) {
prenom=pPrenom;
_nom=pNom;
nom2=pNom;
age=pAge;
ville=pVille;
}
// récupère le nom du joueur
public function get nom( ):String {
return _nom;
}
// récupère le nom du joueur
public function getNom( ):String {
return nom2;
}
// permet de changer le nom du joueur
public function set nom( pNom:String ):void {
if (pNom.length<=30) {
_nom=pNom;
} else {
trace("Le nom spécifié est trop long");
}
}
}
} |
Lorsque je test, je reçois 2 erreur de compilation du type :
1178: Tentative d'accès à la propriété inaccessible nom, via la référence de type static Joueur.
sur les ligne :
monJoueur.nom = "UnNomTresTresTresTresTresTresLong";
et
trace( "nom : "+monJoueur.nom ) ;
Si je commente c'est 2 ligne et que je test le script, la function getNom fonctionne correctement et me renvoie bien "nom : Wonder"
Si vous avez des question, n'hésiter pas j'y redonderai dans la limite de mes connaissance et dans ce que j'ai compris jusqu'à la.
Merci d'avance pour votre aide.