2010-04-30 7 views
0

Je pense que c'est un problème assez simple, mais je ne semble pas être en mesure de le retirer. Fondamentalement, j'ai une classe parente A, et une classe enfant B. Classe A instancie la classe B avec addChild. Il y a un objet partagé qui est mis à jour à partir d'un serveur Java (red5) auquel un écouteur d'événements est attaché dans la classe A. J'ai une fonction dans la classe A qui passera certaines mises à jour spécifiques de cet objet partagé à la classe B. Le problème se produit est que lorsque la classe B est instanciée, l'écouteur d'événement de la classe A ne fonctionne plus. Je n'ai pas supprimé l'écouteur d'événement de A. Des pensées?Flash AS3 - Envoi d'événements de la classe parent à la classe enfant

+0

Voulez-vous dire que si vous n'ajoutez pas Child (b) alors l'écouteur d'événement fonctionne? Ou voulez-vous dire que si vous ne faites pas var b: B = new B() alors l'écouteur d'événement fonctionne? – bitc

+0

Dès que je fais addChild (B) (ça fonctionne quand je fais var b: B = new B()), l'écouteur d'événement dans A arrête de fonctionner. Fondamentalement, je crée un «lobby» (classe a) et des «chambres» (classe b). Je veux que les chambres utilisent certaines données du lobby. Cependant, lorsque je rajoute childchild (someRoom), l'écouteur d'événement du lobby n'appelle plus la fonction qui met à jour les pièces (même si l'objet partagé change définitivement). –

+0

Je suis corrigé, dès que je fais var b: B = new B(), l'écouteur d'événement dans A arrête de fonctionner. –

Répondre

0

Donc, il semble que votre classe B falsifie l'objet partagé ou peut-être avec la connexion au serveur Java? Le simple fait d'instancier une classe ne doit évidemment pas interférer avec quoi que ce soit auquel elle n'a pas accès.

Vous devez examiner de plus près les dépendances de B. At-il atteindre dans l'état global? (C'est une mauvaise chose d'un point de vue oop). Est-ce qu'il fait un travail dans son constructeur qui fait que la mise à jour cesse de fonctionner? Est-ce qu'il hérite d'une autre classe qui fait tout ce qui précède? Enquêter sur cela et vous devriez probablement trouver le coupable.