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 : 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 ) ;
joueur.as
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");
			}
		}
	}
}
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.