Salut,

Je souhaite modifier des données d'une classe, à travers ce code (simplifié)

Fichier MainBal.as
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include "Metier.as"
import Player;
 
var perso1:Player=new Player();
var perso2:Player=new Player()
 
Joueur2.gotoAndPlay(perso2.listCoup[a]); //mouvement attaquant
Joueur1.gotoAndPlay(perso1.listCounter[a]);	// mouvement défenseur
var strResAttack:String=ManageLife(perso2,perso1,a);
Fichier Metier.as
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
import Player;
 
function ManageLife(clsAttack:Player,clsCounter:Player,i:Number):String
...
var vie:Number=clsCounter.Life-20;
trace ("vie :"+vie);
clsCounter.Life(vie);
...
Fichier Player.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
class Player 
{
private var intLife:Number;
 
public function Player(){	
		intLife=100;
	}
 
function set Life(intLife:Number):Void { 
	 	this.intLife =  intLife;
 	} 
 
function get Life():Number { 
		return this.intLife;
	}
}
Le problème est que lorsque je mets une trace pour avoir la valeur de private , il reste à 100 !

Je me dis que c'est une question de passage par valeur ou référence, mais sur actionscript, je sèche complet. Quelqu'un saurait-il où ca coince ? J'ai peut-être mal fait qqch !