Snap to Movie Clips

I have a movie that has 10 movie clip objects.  Each object has a different letter.  The objective here is that a student can click on a button, here a word and then try to spell the word by dragging the letters to boxes.  What I would like to happen is for the letters to snap to the center of the box once the letter is released on top of that box.

Right now once the release happens the letters just lay where they are dropped.


Who is Participating?
Give your movieclips an instancename. This name can be set in the properties window. then using that name you can access them like this:

myMC._x = 123;  // assuming you set myMC as instance name, give each movieclip a new name

depending on where you are trying to access the movieclip you micht have to write:

_root.myMC._x = 123;  // this is if you movieclip lies on the main timeline.

If you can't get this to work, post your fla and I'll write this straight into your fla.
what you can do is add some positioning code when you stop the dragging:

somewhere in your code you have:


// calculate corrected position (snap to a grid)
mc._x = correctedX
mc._y = correctedY

Now to calculate the corrected position I'll give you a simple example that snaps to a 100x100 pixel grid

var correctedX = int(mc._x / 100) * 100;
var correctedY = int(mc._y / 100) * 100;

What this does is the following:  lets say my _x is 145.   145 / 100 = 1.45;  int(1.45) = 1; 1 * 100 = 100;
This of course can be refined a lot. In your case you will probably have to first check if the letter was released in the top part where you have the spaces to insert letters. If not, I would return the letter to its starting position at the bottom. The same for letters dropped somewhere outside of the top part.
In the top part define your grid where you want to  snap your letters to and do the calculations.
skibama1Author Commented:
OK, how do I go about changing the _X and _Y properties of the object?  I was assuming it would be:

setProperty("instance", _X, "xvalue");

but I nothing happens on the release
skibama1Author Commented:
The _root solved the problem.  I also had to go back and set the _x & _y variables to calculate it based on the root.

That is:

var1 = _root.instance._x

instead of:

var1 = instance._x

Thanks for your help!!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.