Dumb Newbie Questions -- 3 of N

Jim Bufalini jim at visitrieve.com
Sat May 2 15:48:04 EDT 2009


You're just TOO good at explaining things, Jacque! :-)

Jacque wrote:

> Let's try something simple. Suppose you have a card with lots of
> buttons
> that the user can move around; maybe your script uses the "grab"
> command
> to let them drag the butons. Now you want a way to reset the card to
> its
> native state that puts all the buttons back to their original
> positions.
> 
> Buttons have a "loc" property, but that only stores the current
> position
> of the button at this moment, and the engine will update that value
> every time the button moves. There isn't any native property that tells
> you where the button started from, but we can make a custom property
> that does that. We'll call it the "startLoc" and each moveable button
> will need to have that property assigned to it. Before the user has a
> chance to drag anything (maybe during development, or during
> preopencard) you run a little handler that sets that property for each
> button:
> 
> on setBtnLocs
>    repeat with x = 1 to the number of btns
>      set the startLoc of btn x to the loc of btn x
>    end repeat
> end setBtnLocs
> 
> Now each button has a custom property called "startLoc", and the value
> of the property for each button is it's current position.
> 
> Now you're ready to grab the buttons and move them all around till
> nothing is in the right place any more. Then you can click a "Reset"
> button which puts them all back with this simple script:
> 
>   on mouseUp
>    repeat with x = 1 to the number of btns
>     set the loc of btn x to the startLoc of btn x
>    end repeat
> end mouseUp
> 
> Your custom property "startLoc" acts just like any other property. The
> only difference is that the engine doesn't create or update it, you do.
> 
> I can think of several other ways to store each button's start
> position,
> but none of them are this simple, and none of them tie the correct
> value
> to each button individually the way having a custom property does. The
> startLoc of each button becomes an integral attribute of the button
> just
> like its color or its name, and is the only way to accomplish this
> example with any degree of efficiency.
> 
> --
> Jacqueline Landman Gay         |     jacque at hyperactivesw.com
> HyperActive Software           |     http://www.hyperactivesw.com
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list