cs_seed
Messages postés99Date d'inscriptionsamedi 1 février 2003StatutMembreDernière intervention19 mars 2005
-
12 mars 2004 à 22:53
cs_seed
Messages postés99Date d'inscriptionsamedi 1 février 2003StatutMembreDernière intervention19 mars 2005
-
15 mars 2004 à 20:23
Bonjour,
J'aimerais savoir comment est il possible de communiquer entre deux classes en AS2 je m'explique :
j'ai une classe appelé classe1 qui contient une variable public mavar
je voudrais pouvoir appeler celle-ci à l'interireur d'une autre classe nommé classe2
voici un exemple
class classe1(){
public var mavar:Number;
function classe1(arg1:Number){//constructeur
this.mavar=arg1;
}
}
class classe2(){
function classe2(){
//constructeur
}
public function maFonction(){
trace(classe1.mavar);
}
}
dans le fla je fais :
var c1:classe1= new classe1(999);
var c2:classe2= new classe2();
c2.maFonction();
et là flash m'envoi une erreur disant que classe1 n'est pas une propriété de classe2
Esque qqn aurait une solution appart utiliser une variable static?
hacklyn
Messages postés3Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention17 mars 2004 15 mars 2004 à 01:23
Salut,
la "solution" de seed est inadaptée et non conforme: en effet l'objet c1 qu'il invoque dans la Méthode maFonction
n'est déclaré nulle part....Donc on a toute les chances d'avoir une erreur à la compilation.En poo pour que des instances puissent communiquer il faut que leurs classes contiennent des methodes ad-hoc (les messages).De plus pour que les instances puissent s'envoyer des messages il faut que les classes possèdent un LIEN soit de composition,soit d'association soit de dépendance.
par exemple avec un lien de composition:
//******************************
class Classe1 {
private var mavar:Number;
//constructeur
function Classe1(arg1:Number) {
this.mavar = arg1;
}
public function tracemavar() {
trace(mavar);
}
}
//******************************
//******************************
class Classe2 {
var obj_c1:Classe1;
//constructeur
function Classe2(objc1:Classe1) {
this.obj_c1 = objc1;
}
public function maFonction() {
obj_c1.tracemavar();
}
}
dans le fla je fais :
var c1:Classe1= new Classe1(999);
var c2:Classe2= new Classe2(c1);
c2.maFonction();