On Monday, June 30, 2003, at 09:21 AM, Ken Norris wrote:


I'm still having problems understanding 'send in time'

I want to send continuous messages to scroll a field while the cursor is
within a graphic while the mouse is down. It's been reiterated a number of
times that it's not a good idea to use 'mouseWithin' or 'mouseStillDown' or
'while the mouse..' or 'until the mouse..' in Rev.


As an example, here's how I would write it in a normal HyperTalk structure:

on mouseDown
  repeat until the mouse is up
    if the mouse is within graphic 1 then
       set the vScroll of fld 1 to (the vScroll of fld 1) - 1
    else beep
  end repeat
end mouseDown

How should I rewrite this to get the exact same effect with a 'send in time'
construct?

I don't think this is a send-in-time question. It is a mouse event question.


The problem is that mouseEnter, mouseLeave and even mouseWithin or mouseMove are not sent to alternate objects when the mouse button is down. If they were, then you could use those to change the action of the button being held down.

I can only think of a few ways:
1. the mouseLoc is within the rectangle of graphic "Test"
2. use some graphic other than the mouse pointer for moving over the graphic
3. figure out some way to use drag


The send-in-time script for #1 is adapted straight from a cookbook message-machine script:

local scrollMonitorID = ""

on startScrollMonitor
  if scrollMonitorID is empty then
    send "monitorScroll" to me in 0 seconds
    put the result into scrollMonitorID
  end if
end startScrollMonitor

on stopScrollMonitor
  cancel scrollMonitorID
  put empty into scrollMonitorID
end stopScrollMonitor

on monitorScroll
if the mouseLoc is within the rectangle of graphic "Test" then
set the vScroll of field "test" to (the vScroll of field "Test")-1
else
beep
end if
send "monitorScroll" to me in .4 seconds -- put in if to have diff times
put the result into scrollMonitorID
end monitorScroll


on mouseDown
  startScrollMonitor
end mouseDown

on mouseUp
  stopScrollMonitor
end mouseUp

on mouseRelease
  stopScrollMonitor
end mouseRelease

Just put that in your card script and make sure you have the field "Test" and the graphic "Test".

If you need to avoid mouseLoc(), then you may have to try something else.

Dar Scott


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

Reply via email to