Apply this script to the control movie clip that rests offstage and give it an instance name "clip". Don't try to put the code directly into the compass movie clip unless you want it to just spin around crazily. Give the compass movie clip an instance name of "comp".
The center of rotation needs to be established for the comp in relationship to the position of the mouse cursor. This script works if the comp is on the root stage, but if it's embedded within multiple movie clips you will have to input manuel coordinates based on its position on the main stage in place of _root.comp._x & _root.comp._y.
mouse x and y values on the comp
x = (_root._xmouse - _root.comp._x);
y = (_root._ymouse - _root.comp._y);
next step is to do our math homework. We need to know the length of the hypotenuse
for the mouse's x and y values (the distance from the mouse cursor to the center
of rotation). The Pythagorium Theorem, which will tell us the length of hyp,
width * width + height * height = hyp * hyp. Then Square root of (hyp * hyp).
equation determines the length of the hypotinuse (hyp) for x and
hyp = Math.sqrt(Math.pow(x,2) + Math.pow(y,2));
Now let's determine a cosine ratio for the values of x and hyp.
changes the value of the mouse x position into a cosine (a number between
-1.0 and 1.0) by dividing it by the hyp.
cos = x / hyp;
Apply an arc cosine function to the cos to convert the angle into radians.
coverts the cos into an angle in radians.
rad = Math.acos(cos);
|» Level Advanced|
Rating: 7 Votes: 28
|Kahlen Freeman is a Flash developer for www.cornerusa.com.|
|Download the files used in this tutorial.|
|Download (0 kb)|
|More help? Search our boards for quick answers!|