On Sunday, July 20, 2003, at 05:36 PM, John Tenny wrote:


Only it doesn't. I'm sure it simpler than this. Sometimes I can get one clock working, but the second button won't stop it.

Here's more while you are pondering the earlier mail.


While you are getting the hang of this, work with just one timer.

There are a few issues here. One is starting and stopping the send cycle (I call it a simple message machine). The other is dealing with drift because of delays in executing the message. A third is where setting numberFormat goes.

Three approaches to starting and stopping cycles:
1. Use a state variable that has running, stopped and winding-down state
2. Use a state variable with empty for stopped and the message ID for running
3. Stop by name using pendingMessages() even before starting


I don't think #1 will work well for you because some folks might click fast. Let's go with # 2.

Here is a pattern that should work for you.

local timer1ID
constant timer1Period = "1.0"

on startTimer
  stopTimer  -- alternately exit if timer1ID is not empty
  send "countDown" to me in 0 secs -- or timer1Period secs depending...
  put the result into timer1ID
end startTimer

on stopTimer
  cancel timer1ID
  put empty into timer1Id
end stopTimer

on countDown
  doTimer1Stuff  -- set the numberFormat in here
  send countDown to me in timer1Period
  put the result into timer1ID
end countDown

Put this in the card script for now. Set up buttons that connect call startTimer and stopTimer respectively.

Play with that. Watch pending messages with the message box.

To expand to two timers, add scripts in the card for timer 2, but both stops in the stop button, but start of one and stop of the other in the two start buttons. Move scripts later to, say, field or timer group.

Concerning drift... It won't be bad for the tests, but when things get active or long, try remembering the seconds at the start and then subtracting that from the seconds at the display time.

I didn't look at the code in the bulk of your timer counting and display.

I hope this points you in the right direction.

Dar Scott




_______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to