2010-04-30 52 views
0

我认为这是一个非常简单的问题,但我似乎无法将其解决。基本上我有一个父类A和一个子类B.类A使用addChild实例化类B.有一个共享对象正在从Java服务器(red5)更新,该服务器在类A中附带了一个事件监听器。我在类A中有一个函数,它将从此共享对象传递给B类的特定更新。发生的问题是,当类B实例化时,类A的事件侦听器不再工作。我没有从A中删除事件监听器。有什么想法?Flash AS3 - 将事件从父类调度到子类

+0

你的意思是,如果你不addChild(b)那么事件监听器的作品?或者你的意思是,如果你不做var b:B = new B(),那么事件侦听器的工作原理? – bitc 2010-04-30 20:36:38

+0

只要我做addChild(B)(当我做var b:B = new B()时仍然有效),A中的事件监听器停止工作。基本上我正在创建一个“大厅”(a类)和“房间”(b类)。我想要房间使用大厅的某些数据。但是,当我添加child(someRoom)时,来自大厅的事件监听器不再调用更新房间的函数(即使共享对象肯定在变化)。 – 2010-04-30 20:41:12

+0

我站在更正,只要我做var b:B = new B(),A中的事件侦听器停止工作。 – 2010-04-30 20:56:52

回答

0

因此,您的B类似乎篡改共享对象或可能与Java服务器的连接?实例化一个类当然不应该干涉它无法访问的任何东西。

您需要仔细看看B具有哪些依赖关系。它是否达到全球状态? (从oop的角度来看这是一件坏事)。它是否在构造函数中做了任何使更新停止工作的工作?它是否继承了其他一些能够完成上述任何一项的课程?调查这一点,你应该找到罪魁祸首。