Dragging an object

Jim Hurley jhurley0305 at sbcglobal.net
Thu Jul 10 22:01:38 EDT 2014


> 
> Message: 19
> Date: Thu, 10 Jul 2014 17:24:16 -0700
> From: Peter Bogdanoff <bogdanoff at me.com>
> To: How to use LiveCode <use-livecode at lists.runrev.com>
> Subject: Dragging an object
> Message-ID: <14789523-9AF4-4531-83CF-FF60644D1D89 at me.com>
> Content-Type: text/plain; charset=windows-1252
> 
> Hi,
> 
> I want to drag an object around (a group), restricting its Y coordinate (set to be a property, ?yLocation"). I?m using this script inside the object:
> 
> on mouseMove
>   if the mouse is down then
>      set the loc of me to (item 1 of the mouseLoc,the yLocation of me)
>   end if
> end mouseMove
> 
> However, after moving it sideways, when I click on it again to move it, every time it jumps back so that its X coordinate is zero relative to the mouseLoc.
> 
> This behavior would be fine for a button, but I?m dragging a 3000-pixel-wide group.
> 
> How can I drag it by clicking on one side of this group?
> 
> I tried using the grab command, but I couldn?t seem to be able to restrict the Y coordinate with that.
> 
> Peter
> UCLA

Hi Peter,

Greetings from UCD (retired).

The mouseMove needs to recognize the initial separation between the mouse at mouseDown the x loc of the object being moved at mouseDown. I call that distance dx. 
The following will move the button along the initial y coordinate of the button and the x loc of the mouse plus the initial separation dx  

local y0 ,myName, dx

on mouseDown
  put the short name of me into myName
  put the loc of me into p0
  put item 2 of p0  into y0
  put the mouseloc into p1
  put item 1 of p1 into x1
  put  item 1 of p0 into x0
  put x0 - x1 into  dx --The distance between the button loc and the mouse loc
end mouseDown

on mouseMove x,y
   if myName is not empty then
      set the loc of me to x+ dx,y0
   end if
end mouseMove

on mouseUp
  put empty into myName
end mouseUp

on mouseEnter
   put "" into myname
end mouseEnter





More information about the use-livecode mailing list