package { public class Vector2 { public var x:Number; public var y:Number; public function Vector2(x:Number = 0, y:Number = 0) { this.x = x; this.y = y; } public function get z():Number { return y; } public function set z(value:Number):void { y = value; } public function clone():Vector2 { return new Vector2(x, y); } public function add(rhs:Vector2):Vector2 { return new Vector2(x + rhs.x, y + rhs.y); } public function subtract(rhs:Vector2):Vector2 { return new Vector2(x - rhs.x, y - rhs.y); } public function get magnitude():Number { return Math.sqrt(squareMagnitude); } public function get squareMagnitude():Number { return x * x + y * y; } public function cross(rhs:Vector2):Number { return x * rhs.y - y * rhs.x; } } }