AS2.0 : portée dans gestionnaire écrit dans une classe - Flash/ActionScript - Programmation
Marsh Posté le 26-05-2005 à 14:14:07
Nan mais je sais pas si tu sais en général comment on utilise des classes... à quoi te sert ta classe "MaClasse" ?? c'est une classe "controleur" qui s'occupe de gérer la base ??
Car mettre un appel à "_root" dans une classe, c'est plutot contre nature...
Mais bref, si tu veux faire appel à ton instance de classe dans ton gestionnaire, t'as qu'a déclarer une référence à l'instance juste avant de déclarer le gestionnaire, et normalement, tu y aura accès...
par exemple :
function maFonction( Void ):Void
{
var owner:MaClasse = MaClasse( this ); // casting pour bien passer une instance de "MaClasse";
monObjet.onRollOver = function()
{
trace( owner );
}
}
mais dans cette histoire, tu ferai mieux de passer "unClip" comme référence et d'avoir une variable dans "MaClasse" qui va accueillir cette référence, car le "_root", c'est vraiment pas dans l'esprit AS2 et/ou POO...
Bon courage, a++
Marsh Posté le 25-05-2005 à 09:32:22
Salut,
j'ai une classe AS2.0, dans laquelle je veux écrire des gestionnaires d'événements à la volée. Dans ceux-ci je veux invoquer l'instance courante de la classe, mais j'ai un problème de portée, je n'y arrive pas... C'est pas clair ? Je m'explique, avec un bout de code.
J'ai une solution bancale, qui est de faire une classe définissant tout ça pour le movieclip en question, en la rattachant à un symbole (linkage), avec un pseudo-constructeur init() qui me permet de passer l'instance de MaClasse au clip. Mais c'est un peu laborieux pour peu de choses, et surtout pas très souple : déjà ça fait un .as de plus, et en plus j'utilise un compilateur alternatif (www.mtasc.org), donc j'évite au maximum d'ouvrir l'éditeur flash de Macromedia, bien trop lourd (et buggué) pour le développement.
Voilà, si quelqu'un a une solution élégante (et légère !), je prends avec grande joie !