View Single Post
  #3  
Old 06-27-2010, 10:34 AM
IGoudt IGoudt is offline
Member
 
Join Date: Sep 2009
Posts: 20
From my experience, you can register events only once.
For example:

Class A registers a viz.MOUSEDOWN_EVENT
Class B registers a viz.MOUSEDOWN_EVENT

Then if I recall correctly the last register will overwrite the first. What I did to resolve this, is to put all the registers in one of the main, or container, classes. Whenever an event is triggered there, the main class redirects the event to the appropiate classes or objects.

In your case, I guess your main class creates an instance of the MusicOnOff class (a button), and saves it under a variable. Change to:

Code:
class MusicOnOff:
       def __init__(self,musicObj):
             self.Obj = musicObj
             self.musicIcon = viz.addTexQuad()
             self.pictures = [viz.add(‘musicOff.png'), viz.add('musicOn.png')]
             self.musicIcon.texture(self.pictures[1])
             self.musicOn = True
             
             
       def click(self):
             
             self.musicOn = not self.musicOn
             self.musicIcon.texture(self.pictures[self.musicOn])
             if not self.musicOn:
                    
                    self.Obj.pause()				
             else:
                    self.Obj.play()
Reply With Quote