well, what you need to do is work out the shortest route to the angle you want.

i think it would go something like this

first compute the difference in angles :

angleDiff = abs(destAngle - sourceAngle)

if its greater than 180 degrees, you want to go the other way.

to find that, check which angle is bigger.

goClockwise = sourceAngle > destAngle

So, if you are at 5 degrees and you click at 355 you get :

angleDiff = 355 - 5
          = 350

goClockwise = false

and if you are at 355 and want to go to 5

angleDiff = 5 - 355
          = 350

goClockwise = true

then find out how far to go :

howFar = 360 - angleDiff

and if you want to go anticlockwise, make it negative

THEN, keep the original angle stored, run the tween from 0 -> howFar and add it to the original angle at each step.

i think this means you wont be able to get the tween to change _rotation directly, but rather you'll have to get a callback or something similar to grab the current tween position. (or you could do something nifty with nested movieclips and rotate the parent without tweening first, so you can just modify the rotation of the child from the tween, but that may be more trouble than its worth..)

anyway, i think that should work, im just working it out as i go along so it could fail for some cases...this may be where i was thinking about the quadrant checks, but im not sure.

i'll give it a try in a while, ive got non-computer things to do now. :)

thanks,

Martin


eric dolecki wrote:
Its that last part frying me - sometimes it works as expected, other times,
it decides to rotate the long way around :/

thanks all.

_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to