AW: AW: missing a basic with drag

Wilhelm Sanke sanke at hrz.uni-kassel.de
Thu Aug 14 11:51:09 EDT 2008


On Thu Aug 14 Klaus Major klaus at major-k.de wrote:

> Hi Tiemo,
>
> > Hi Klaus,
> > thanks for answering
> >>
> >> I always check what's necessary "on mouseup" in these cases.
> >
> > Hmm, works but not very "nice" if the user moved the image out of the
> > boundaries of the window when dragging and it flips back into the  
> > wanted
> > boundaries, by mouseUp. I would think there must be a more elegant  
> > solution.
>
> You did not mention that you wanted an elegant solution :-D
>
> OK, elegant is possible, but also more elaborate.
> You will have to use "mousemove" handler and check the objects  
> location in that handler.



The script below works for me here sufficiently elegant:

"local cY,cX,movedobject

on mouseDown
  put (the mouseH - item 1 of the loc of me) into cX
  put (the mouseV - item 2 of the loc of me) into cY
  put true into movedobject
end mouseDown

on mouseMove x,y
  if the mouseloc is within the rect of image "big" then
# assuming the "dragged" image is moved within a larger image,
# but - if not - you may remove the line above and the
# "end if" in this mousemove handler
    if not movedobject then exit mouseMove
    set loc of me to  x-cx,y-cY
    set the loc of img "hiliteframe" to the loc of me
# "hiliteframe" is a transparent image where only the borders are 
non-transparent
  end if
end mouseMove

on mouseUp
  put false into movedobject
end mouseUp

on mouseRelease
  mouseUp
end mouseRelease"


Best regards,

Wilhelm Sanke
<http://www.sanke.org/MetaMedia>




More information about the use-livecode mailing list