MouseDown on Enter

Alex Tweedly alex at tweedly.net
Wed Jan 2 05:14:14 EST 2019


On 01/01/2019 20:39, Alex Tweedly via use-livecode wrote:

> However - I'm not sure that's a very intuitive UI ("release to play"), 
> so I'd probably go the extra mile and do the harder one that 
> replicates the original UI. And that *is* harder, so I will try it out 
> before I say any more about it ...
>
OK, here's a simple script that does what (I think) you want.

NB - I decided to let Malte do the hard work and used AnimationEngine to 
check whether the mouse was within each hexagon; since Malte very 
generously put AE into the public domain, I see no reason to struggle 
through the maths again :-)

The following script goes into the card script; you MUST also put a copy 
of the mouseStillDown handler into each hexagon's script. (Note there is 
no actual dependence on them being hexagons).

> -- card script for hexagons
> on mouseDown
>    setCurrentHex
> end mouseDown
>
> on mouseUp
>    setCurrentHex
> end mouseUp
>
> on mouseRelease
>   setCurrentHex
> end mouseRelease
>
> on mouseStillDown pButtonNumber
>   setcurrentHex
> end mouseStillDown
>
> command setcurrentHex
>    local temp, tCtl, txy, x, y
>    put the mouseLoc into txy
>    set the itemdel to comma
>    put item 1 of tXY into x
>    put item 2 of txy into y
>    repeat with i = 1 to 2
>       put the points of grc ("P"&i) into temp
>       if  pointInPoly(x,y,temp) then
>          put i && the millisecs &CR after msg
>          exit repeat
>       end if
>    end repeat
> end setcurrentHex

btw - you can eliminate the mouseDown, mouseUp and mouseRelease 
handlers, if you can accept the very short delay until mouseStillDown 
kicks in.

Alex.




More information about the use-livecode mailing list