 		private var _hoverCtrl : HoverController;
 		private var _prevMouseX : Number;
 		private var _prevMouseY : Number;
+		
+		private var _skeleton : Skeleton;
+		private var _animator : SkeletonAnimator;
 		
 		public function AWDViewer()
 		{

		private function load(url : String) : void
		{
			Loader3D.enableParser(AWD2Parser);
			_loader = new Loader3D(false);
			_loader.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
			_loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE, onResourceComplete);
			_loader.load(new URLRequest(url), new AssetLoaderContext(false));
		}
		
		

			var max : Vector3D;
			var min : Vector3D;
			var d : Vector3D;
			
			if (_skeleton) {
				var it : AssetLibraryIterator;
				var mesh : Mesh;
				var geom : Geometry;
				var jpv : int;
				
				it = AssetLibrary.createIterator(AssetType.MESH);
				while (mesh = Mesh(it.next())) {
					if (mesh.geometry && mesh.geometry.subGeometries.length > 0) {
						var sub : SkinnedSubGeometry = mesh.geometry.subGeometries[0] as SkinnedSubGeometry;
						if (sub != null) {
							geom = mesh.geometry;
							jpv = sub.jointIndexData.length / sub.numVertices;
							break;
						}
					}
				}
				
				if (geom) {
					var seq : SkeletonAnimationSequence;
					var name : String;
					var state : SkeletonAnimationState;
					
					geom.animation = new SkeletonAnimation(_skeleton, jpv, true);
					state = SkeletonAnimationState(mesh.animationState);
					
					_animator = new SkeletonAnimator(state);
					_animator.updateRootPosition = false;
					
					it = AssetLibrary.createIterator(AssetType.ANIMATION);
					while (seq = SkeletonAnimationSequence(it.next())) {
						_animator.addSequence(seq);
						
						if (!name)
							name = seq.name;
					}
					
					_animator.play(name);
				}
			}
			
			max = new Vector3D(_loader.maxX, _loader.maxY, _loader.maxZ);
			min = new Vector3D(_loader.minX, _loader.minY, _loader.minZ);
