[Closed] repeatedly calling a function until checkbox unchecked
This is a terrible ‘nooby type’ question I know but I’d like the following function to loop so that it plays again until a ‘loop’ checkbox is turned off…
:
fn replayMove =
(
p = 1;
(
for t = 1 to tracker.count do
( struct capture_struct (time, pos);
diff = (tracker[t].time - tracker[p].time)
if diff >= 1000/framerate then
--
(
--optional movement of slider slidertime = slidertime + 1;
struct capture_struct (time, pos);
$.pos = tracker[t].pos ;
p = p +1;
)
--
)
);
slidertime = startframe[1]; $.pos = posObjectStart[1];
t =1;p =1
on loop changed [state]( http://forums.cgsociety.org/#) do (replayMove())
);
Only I get into dependency loop problems so it doesnt work as expected.
Is there a simple appoach using while…do…or something of that nature?
Simplest suggestion… Can you just use the loop on/off control in the time configuration dialog…
timeConfiguration.playbackLoop = false
If you’re moving the time-slider in maxscript I’d use a Timer set to an interval of 1 frame and check to see if the checkbox is ticked.
thanks for that bud…but I don’t really want to use the slider as this interrupts the thread…the slider movement is optional…the thing that moves the object around is $.pos…this is what i want to loop…
I’d suggest the use of a timer which calls the function on tick.
Something like that :
timer myTimer tick:1000
on myTimer tick do (
if myCheckBoxState do (
myFunction()
)
)
I’m not sure of “tick” property though, could be some other name, i don’t usually use timers.
Also, so you won’t have lagging in your command such as function – nothing – tick – function -nothing… you might call your function in a loop. Running a performance tets to check how much iterations you need to perform so it’ll run for a second
This might also be a terrible solution, so please MXS pros feel free to prove me wrong !