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.
Code :
- class MaClasse
- {
- // membres de la classe
- // (...)
- // constructeur
- // (...)
- // une méthode
- public function maFonction():Void
- {
- // (...)
- // ici j'écris le gestionnaire d'événements, par exemple
- // pour un MovieClip dont je connais l'existence sur la scène :
- _root.unClip.onRollOver=function()
- {
- // voilà, c'est ici que je voudrais faire appel à
- // l'instance courante (this) de la classe MaClasse.
- // mais si je fais appel à this ici j'ai l'impression
- // que ça fait référence à _root.unClip...
- // (...)
- }
- // (...)
- }
- }
|
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 !