М-да...

Код AS3:
public function set length(value:Number):void {
var _angle:Number = angle;
_x = Math.cos(_angle) * value;
_y = Math.sin(_angle) * value;
if(Math.abs(_x) < 0.00000001) _x = 0;
if(Math.abs(_y) < 0.00000001) _y = 0;
}
/**
* Returns the length of the vector.
**/
public function get length():Number {
return Math.sqrt(lengthSquared);
}
Обе функции - очень плохие.
Длину надо кэшировать. Для того, чтобы можно было:

Код AS3:
public function set length(value:Number):void {
x *= value/_cashLength;
y *= value/_cashLength;
// Вот это всё-таки надо… Против глюков.
if(Math.abs(_x) < 0.00000001) _x = 0;
if(Math.abs(_y) < 0.00000001) _y = 0;
}
public function get length():Number {
return _cashLength;
}