WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   stopping ontimer (https://forum.worldviz.com/showthread.php?t=1956)

durf 04-08-2009 12:14 PM

stopping ontimer
 
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?
Code:


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.
Code:

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

Code:

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.


All times are GMT -7. The time now is 11:20 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC