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
joueur.as
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ) ;
Lorsque je test, je reçois 2 erreur de compilation du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); } } } }
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.
Partager