PDA

View Full Version : stopping ontimer


durf
04-08-2009, 12:14 PM
My program runs on onkeydown() that are assigned to different def func:. When i switch from func A to func B. A is still running. The reason is I think is becuase of the ontimers that I have associated with it. So is there anyway to stop and ontimer? Any other suggestions to handle this problem?

def funcA():

def calculate():
#CODE

vizact.ontimer2(0,viz.FOREVER,calculate)
vizact.onkeydown('a',funcA)

def funcB():

def speed():
#CODE

vizact.ontimer2(0,viz.FOREVER,speed)
vizact.onkeydown('b',funcB)

Jeff
04-09-2009, 11:03 AM
You could try this to keep only one timer active at a time.
import viz
viz.go()

def calculate():
print 'calculate'

def speed():
print 'speed'

timer1 = vizact.ontimer2(1,viz.FOREVER,calculate)
timer2 = vizact.ontimer2(1,viz.FOREVER,speed)
timer1.setEnabled(viz.OFF)
timer2.setEnabled(viz.OFF)

def funcA():

timer1.setEnabled(viz.ON)
timer2.setEnabled(viz.OFF)

vizact.onkeydown('a',funcA)


def funcB():

timer1.setEnabled(viz.OFF)
timer2.setEnabled(viz.ON)

vizact.onkeydown('b',funcB)

durf
04-11-2009, 10:06 AM
Is there a way to use the same key to turn on and turn off the same function?

IE. If I hit 'a' to enable def calculate() then I hit 'a' again to disable def calculate().

I have the idea I think for it. Which would be to have a bool value and then change it from true to false and have if else statements to check it. Could be wrong thats why Im asking.

Jeff
04-11-2009, 06:50 PM
You could use viz.TOGGLE so that each time you press the key the timer will change states and your function will either start or stop being called

def funcA():
timer1.setEnabled(viz.TOGGLE)

vizact.onkeydown('a',funcA)


def funcB():
timer2.setEnabled(viz.TOGGLE)

vizact.onkeydown('b',funcB)

yak
06-02-2009, 11:38 AM
i have an application where i have my 3d human model walking but i want it to freeze...or pause how can i do that.