[comp.sys.mac.hypercard] MouseClick Bug in HyperCard 2.0.2

dmittman@beowulf.JPL.NASA.GOV (David Mittman) (02/14/91)

I input this handler from Claris' "HyperCard Script Language Guide",
page 282:

on mouseUp
  put "Click or don't click..."
  wait 5 seconds
  if the mouseClick then
    put "You clicked."
  else
    put "You didn't click."
  end if
end mouseUp

(In a button on the Home card). It always returns "Your clicked." even
when I don't click. Also, the statement "wait until the mouse is down"
never seems to wait. Anyone else see this? System Configuration:

Macintosh II 5 MB, System 6.0.5, several inits, including Ed (Not), 
and Disinfectant INIT.

				- David

gort@cup.portal.com (george d harrington) (02/15/91)

Re: the HC scrip tthat waited for 5 secs and then reported whether
or not you clicked, except it always thinks you clicked.
I don't have 2.0v2 HC (yet), but try this:
put the line    "wait while the mouseclick" at the top of the handler.
This will clear out the event q of any leftover unprocessed clicks.
I find it handy for clearing up probs with users clicking twice instead
of once, causing the second click to do something unexpected.
          
                             gort@cup.portal.com

disclaimer: this is not a disclaimer.

Lou@cup.portal.com (William Joseph Marriott) (02/19/91)

David Mittman writes: 

 >  I input this handler from Claris' "HyperCard Script Language Guide",
 >  page 282:
 >  
 >  on mouseUp
 >    put "Click or don't click..."
 >    wait 5 seconds
 >    if the mouseClick then
 >      put "You clicked."
 >    else
 >      put "You didn't click."
 >    end if
 >  end mouseUp
 >  
 >  (In a button on the Home card). It always returns "Your clicked." even
 >  when I don't click. Also, the statement "wait until the mouse is down"
 >  never seems to wait. Anyone else see this? System Configuration:
 >  
 >  Macintosh II 5 MB, System 6.0.5, several inits, including Ed (Not), 
 >  and Disinfectant INIT.
 >  
 >                                  - David

I tried this on my copy of HyperCard and had appropriate results.
When I clicked, it said I clicked. When I didn't click, it said I
did not click.

Perhaps you are double-clicking the button? Try clicking just once.

Try this alternative and tell me what happens:

on mouseLeave
  put "Click or don't click..."
  wait 5 seconds
  if the mouseClick then
    put "You clicked."
  else
    put "You didn't click."
  end if
end mouseLeave

-Bill Marriott
 Lou@cup.portal.com