
I'm trying to make a movie clip that changes it's alpha depending on how close the mouse is to it's center. So far, all I've gotten is a bunch of failures...here's the script that has worked the bast so far:
//determine number of pixels difference between movieclip and mouse, then set the _alpha of movieclip to half of what is returned.
movieclip.xalpha = Math.abs(movieclip._x  _xmouse);
movieclip.yalpha = Math.abs(movieclip._y  _ymouse);
movieclip.newalpha = movieclip.xalpha + movieclip.yalpha;
movieclip.newalpha = movieclip.newalpha  movieclip._x;
movieclip.newalpha = movieclip.newalpha  movieclip._y;
movieclip.newalpha = movieclip.newalpha / 2;
movieclip.newalpha = Math.abs(movieclip.newalpha);
movieclip._alpha = movieclip.newalpha;
I had to subtract the movieclip's x and y because for some reason when I traced movieclip._alpha, it was always higher than it was supposed to be by those two numbers added together. Now it works mostly (when the mouse gets closer the movieclip fades), but it also fades when the mouse is up and to the right, and down and to the left. Any suggestions?

The problem is that you are adding the x and y distances to get the "total" distance from the movie clip. Instead, use the pythagorean theorem to find the distance. That is, x^2 + y^2 = z^2 where x is the x distance, y is the y distance, and z is the hypotenuse distance, which is what you are looking for. Oh, and ^2 means "squared", just in case...
So, you're code would be something like:
xdistance = Math.abs(movieclip._x  _xmouse);
ydistance = Math.abs(movieclip._y  _ymouse);
zsquared = (xdistance * xdistance) + (ydistance + ydistance);
zdistance = Math.sqrt(zsquared);
movieclip._alpha = (zdistance / 2);
Try it and tell me if it works, maybe I'll use it on a project myself
Good luck and have fun,
Snapcase.

OOPS!! Typo!
In the line for zsquared, it's supposed to write:
zsquared = (xdistance* xdistance) + (ydistance * ydistance);
 changed this ^^^
I changed the second addition to a multiplication, so the above is now correct!
Sorry! :P

Thanks for your help!
Here's the final script:
this.newalpha = (_xmouse*_xmouse + _ymouse*_ymouse);
this.newalpha = this.newalpha/2;
this._alpha = this.newalpha;
the dividing by two is just so the square starts fading sooner.
Posting Permissions
 You may not post new threads
 You may not post replies
 You may not post attachments
 You may not edit your posts

Forum Rules

Click Here to Expand Forum to Full Width
