So I'm a little confused about how the EventDispatcher works...
perhaps someone can clue me in. Here goes...
Assume the following:
classA(EventDispatcher):
def __init__(self):
...code..
classA.register_event_type('on_added')
classB(classA):
def __init__(self):
classA.__init__(self)
...code...
def addChild(self, child):
child.dispatch_event('on_added')
class Main(classB):
def __init__(self):
...code...
def on_added(self):
print 'on_added'
# offending code
child = classB()
self.addChild(child)
class App(object):
def __init__(self, main):
root = classB()
root.addChild(main)
app = App(Main())
When I run this app 'on_added' prints to the console and then
everything freezes and I have to force quit. I can only guess that I'm
mixed up on how the EventDispatcher works. I'm guessing that my
on_added handler is getting triggered a second time when I create
another child element and add it, but I'm not positive. What I'm
unclear on is when the on_added handler get's triggered. Will Main's
on_added handler get triggered anytime any instance of classB
dispatches an 'on_added' event? I thought that I could get away with
the handler only being triggered when self dispatches the event... is
that not the case?
Basically I'm trying to implement a simple parent/child relationship
between objects. Ideally, when Main get's added to root I'd expect
Main's on_added handler to get called. And when child get's added to
Main (in the on_added handler) I'd expect nothing to happen b/c I
haven't implemented a handler for 'on_added' events being dispatched
by child. Thanks in advance...
--
You received this message because you are subscribed to the Google Groups
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/pyglet-users?hl=en.