function reacts differently if value passed in as variable and not hard coded
Ok, i have a function that is moving a mc in a spiral.
Here is the code:
Code:
//rotz(dot, 300, 300, .1, 1.004);
rotz(dot, origin_1_x, origin_1_y, .1, 1.004);
function rotz(who,cx,cy,spd,exp){
trace("first x "+who._x);
trace("cx "+cx);
dx = (who._x -cx) * exp;
dy = (who._y -cy) * exp;
trace("dy "+dy);
trace("equation " +(cx+((Math.cos(spd) * dx -(Math.sin(spd) * dy)))));
who._x = cx+((Math.cos(spd) * dx -(Math.sin(spd) * dy)));
who._y = cy+((Math.sin(spd) * dx +(Math.cos(spd) * dy)));
trace("second x "+who._x);
}
right now i have origin_1_x set to 300, so it should act the same as if i had 300 hardcoded (which is currently commented out).
When I hard code 300 in there it works great. but since i will let the user decide what the origin will be, i want to pass a variable instead.
currently, when i hardcode 300 in this is my trace output:
first x 246.95
cx 300
dy -66.3644
equation 253.629273943845
second x 253.6
However, when i pass the variable instead, this is my output
first x 246.95
cx 300
dy -66.3644
equation 300-46.3707260561545
second x 246.95
x gets passed in just fine (as cx is 300), however, the assignment of changing the value of who._x doesn't work at all. and the equation brings back a different result...
anyone else encounter something like this before?
any ideas?
thanks
ty