 			}
 		}
 
-		private function updateRectangle() : void
+		private function update() : void
 		{
 			if (_stage3d)
 			{
-				var origin 	: Point 	= localToGlobal(ZERO2);
+				_upperLeft = localToGlobal(ZERO2);
+
+				if (_width > 2048)
+					_stageX = (_width - 2048) / 2.;
+				else
+					_stageX = _upperLeft.x;
+				
+				if (_height > 2048)
+					_stageY = (_height - 2048) / 2.;
+				else
+					_stageY = _upperLeft.y;
+
 				var width	: Number	= Math.min(2048, _width);
 				var height	: Number	= Math.min(2048, _height);
-
-				_stageX = origin.x;
-				_stageY = origin.y;
 
 				_stage3d.x = _stageX;
 				_stage3d.y = _stageY;


		private function stageResizeHandler(event : Event) : void
		{
			updateRectangle();
		}

		private function stageEventHandler(event : Object) : void

	import aerys.minko.scene.visitor.RenderingVisitor;
	import aerys.minko.scene.visitor.WorldDataVisitor;
	import aerys.minko.type.Factory;
	
	import flash.display.DisplayObject;
	import flash.display.Graphics;
	import flash.display.Shape;
