亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? daedocument.as

?? flash 360全景瀏覽
?? AS
字號(hào):
/*
 * Copyright 2007 (c) Tim Knip, ascollada.org.
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
 
package org.ascollada.core
{
	import flash.display.Bitmap;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import org.ascollada.physics.DaePhysicsScene;
	
	import org.ascollada.ASCollada;
	import org.ascollada.fx.DaeEffect;
	import org.ascollada.fx.DaeMaterial;
	import org.ascollada.namespaces.*;
	import org.ascollada.utils.Logger;
	
	/**
	 * 
	 */
	public class DaeDocument extends DaeEntity
	{
		public static const X_UP:uint = 0;
		public static const Y_UP:uint = 1;
		public static const Z_UP:uint = 2;
		
		public var COLLADA:XML;
	
		public var version:String;
		
		public var animation_clips:Object;
		public var animations:Object;
		public var controllers:Object;
		public var effects:Object;
		public var images:Object;
		public var materials:Object;
		public var geometries:Object;
		public var physics_scenes:Object;
		public var visual_scenes:Object;
		public var nodes:Object;
		public var cameras:Object;
		
		public var vscene:DaeVisualScene;
		public var pscene:DaePhysicsScene;
		
		public var yUp:uint;
		
		public var materialSymbolToTarget:Object;
		
		/**
		 * 
		 */
		public function DaeDocument( object:Object, async:Boolean = false )
		{			
			this.COLLADA = object is XML ? object as XML : new XML( object );
			this.COLLADA.ignoreWhitespace = true;
			
			super( this.COLLADA, async );
		}
		
		public function get numQueuedAnimations():uint { return _waitingAnimations.length; }
		
		public function get numQueuedGeometries():uint { return _waitingGeometries.length; }
		
		/**
		 * 
		 * @return
		 */
		private function buildMaterialTable():void
		{
			materialSymbolToTarget = new Object();
			
			var nodes:XMLList = this.COLLADA..collada::[ASCollada.DAE_INSTANCE_MATERIAL_ELEMENT];
			
			for each( var child:XML in nodes )
			{
				var target:String = getAttribute(child, ASCollada.DAE_TARGET_ATTRIBUTE);
				var symbol:String = getAttribute(child, ASCollada.DAE_SYMBOL_ATTRIBUTE);
				
				materialSymbolToTarget[symbol] = target;
			}
		}
		
		/**
		 * 
		 * @param	id
		 * @return
		 */
		private function findDaeNodeById( node:DaeNode, id:String, useSID:Boolean = false  ):DaeNode
		{
			if( useSID )
			{
				if( node.sid == id )
					return node;
			}
			else
			{
				if( node.id == id )
					return node;
			}
			
			for( var i:int = 0; i < node.nodes.length; i++ )
			{
				var n:DaeNode = findDaeNodeById( node.nodes[i], id, useSID );
				if( n )
					return n;
			}
			
			return null;
		}
		
		/**
		 * 
		 * @param	id
		 * @return
		 */
		public function getDaeNodeById( id:String, useSID:Boolean = false ):DaeNode
		{
			for each( var nod:DaeNode in this.nodes )
			{
				var nn:DaeNode = findDaeNodeById(nod, id, useSID);
				if( nn )
					return nn;
			}
			
			for( var i:int = 0; i < this.vscene.nodes.length; i++ )
			{				
				var node:DaeNode = this.vscene.nodes[i];
				
				var n:DaeNode = findDaeNodeById( node, id, useSID );
				
				if( n )
				{
					//Logger.trace( "found '" + id + "' " + useSID + " ID:" + n.id + " Name:" + n.name + " SID:" + n.sid );
			
					return n;
				}
			}
			
			return null;
		}
		
		/**
		 * 
		 * @param	id
		 * @return
		 */
		public function getDaeNodeByIdOrSID( id:String ):DaeNode
		{
			var node:DaeNode = getDaeNodeById(id, false);
			if(!node)
				node = getDaeNodeById(id, true);
			return node;
		}
		
		/**
		 * 
		 * @return
		 */
		public function readNextAnimation():Boolean
		{
			if( _waitingAnimations.length )
			{
				try
				{
					var animation:DaeAnimation = _waitingAnimations.shift() as DaeAnimation;

					var animLib:XML = getNode(this.COLLADA, ASCollada.DAE_LIBRARY_ANIMATION_ELEMENT);
					var animNode:XML = getNodeById( animLib, ASCollada.DAE_ANIMATION_ELEMENT, animation.id );
				
					animation.read( animNode );
				}
				catch( e:Error )
				{
					Logger.error( "[ERROR] DaeDocument#readNextAnimation : " + e.toString() );
				}
				return true;
			}
			else
				return false;
		}
		
		/**
		 * 
		 * @return
		 */
		public function readNextGeometry():Boolean
		{
			if( _waitingGeometries.length )
			{
				try
				{
					var geometry:DaeGeometry = _waitingGeometries.shift() as DaeGeometry;

					var geomLib:XML = getNode(this.COLLADA, ASCollada.DAE_LIBRARY_GEOMETRY_ELEMENT);
					var geomNode:XML = getNodeById( geomLib, ASCollada.DAE_GEOMETRY_ELEMENT, geometry.id );
				
					geometry.async = false;
					
					geometry.read( geomNode );
					
					this.geometries[ geometry.id ] = geometry;
				}
				catch( e:Error )
				{
					Logger.error( "[ERROR] DaeDocument#readNextGeometry : " + e.toString() );
				}
				return true;
			}
			else
				return false;
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		override public function read( node:XML ):void
		{
			this.version = node.attribute(ASCollada.DAE_VERSION_ATTRIBUTE).toString();
			
			Logger.trace( "version: " + this.version );
			
			// required!
			this.asset = new DaeAsset( getNode(this.COLLADA, ASCollada.DAE_ASSET_ELEMENT) );
			
			Logger.trace( "author: " + this.asset.contributors[0].author );
			Logger.trace( "created: " + this.asset.created );
			Logger.trace( "modified: " + this.asset.modified );
			Logger.trace( "y-up: " + this.asset.yUp );
			Logger.trace( "unit_meter: " + this.asset.unit_meter );
			Logger.trace( "unit_name: " + this.asset.unit_name );
			
			if( this.asset.yUp == ASCollada.DAE_Y_UP )
				this.yUp = Y_UP;
			else
				this.yUp = Z_UP;
			
			buildMaterialTable();
			
			readLibAnimationClips();
			readLibCameras();
			readLibControllers();
			readLibAnimations();
			readLibImages();
			readLibMaterials();
			readLibEffects();
			readLibGeometries(this.async);
			readLibNodes();
			readLibPhysicsScenes();
			readLibVisualScenes();
			
			readScene();
		}

		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibAnimations():void
		{
			_waitingAnimations = new Array();
			this.animations = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_ANIMATION_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_ANIMATION_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeAnimation = new DaeAnimation();
					ent.id = item.attribute(ASCollada.DAE_ID_ATTRIBUTE).toString();
					this.animations[ ent.id ] = ent;
					//Logger.trace( "reading animation: " + ent.id );
					_waitingAnimations.push( ent );
				}
			}
		}

		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibAnimationClips():void
		{
			this.animation_clips = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_ANIMATION_CLIP_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_ANIMCLIP_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeAnimationClip = new DaeAnimationClip( item );
					this.animation_clips[ ent.id ] = ent;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibCameras():void
		{
			this.cameras = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_CAMERA_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_CAMERA_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeCamera = new DaeCamera( item );
					this.cameras[ ent.id ] = ent;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibControllers():void
		{
			this.controllers = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_CONTROLLER_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_CONTROLLER_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeController = new DaeController( item );
					this.controllers[ ent.id ] = ent;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibEffects():void
		{
			this.effects = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_EFFECT_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_EFFECT_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeEffect = new DaeEffect( item );
					this.effects[ ent.id ] = ent;
				}
			}
		}
		
		/**
		 * 
		 * @param	async
		 * @return
		 */
		private function readLibGeometries( async:Boolean = false ):void
		{
			_waitingGeometries = new Array();
			this.geometries = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_GEOMETRY_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_GEOMETRY_ELEMENT );
				for each( var item:XML in list )
				{
					var geometry:DaeGeometry = new DaeGeometry( item, async );
					if( async )
						_waitingGeometries.push( geometry );
					else
						this.geometries[ geometry.id ] = geometry;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibImages():void
		{
			this.images = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_IMAGE_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_IMAGE_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeImage = new DaeImage( item );
					this.images[ ent.id ] = ent;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibMaterials():void
		{
			this.materials = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_MATERIAL_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_MATERIAL_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeMaterial = new DaeMaterial( item );
					this.materials[ ent.id ] = ent;
				}
			}
		}

		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibNodes():void
		{
			this.nodes = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_NODE_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_NODE_ELEMENT );
				for each( var item:XML in list )
				{
					var node:DaeNode = new DaeNode( item );
					this.nodes[ node.id ] = node;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibPhysicsScenes():void
		{
			this.physics_scenes = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_PSCENE_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_PHYSICS_SCENE_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaePhysicsScene = new DaePhysicsScene( item );
					this.physics_scenes[ ent.id ] = ent;
				}
			}
		}
		
		/**
		 * 
		 * @param	node
		 * @return
		 */
		private function readLibVisualScenes():void
		{
			this.visual_scenes = new Object();
			var library:XML = getNode( this.COLLADA, ASCollada.DAE_LIBRARY_VSCENE_ELEMENT );
			if( library )
			{
				var list:XMLList = getNodeList( library, ASCollada.DAE_VSCENE_ELEMENT );
				for each( var item:XML in list )
				{
					var ent:DaeVisualScene = new DaeVisualScene( item, yUp );
					this.visual_scenes[ ent.id ] = ent;
					this.vscene = ent;
				}
			}
		}
		
		/**
		 * 
		 * @return
		 */
		private function readScene():void
		{
			// try to find a valid scene...
			var sceneNode:XML = getNode( this.COLLADA, ASCollada.DAE_SCENE_ELEMENT );
			if( sceneNode )
			{
				var vsceneNode:XML = getNode( sceneNode, ASCollada.DAE_INSTANCE_VSCENE_ELEMENT );
				if( vsceneNode )
				{
					var vurl:String = getAttribute( vsceneNode, ASCollada.DAE_URL_ATTRIBUTE );
					if( this.visual_scenes[vurl] is DaeVisualScene )
					{
						Logger.trace( "found visual scene: " + vurl );
						
						this.vscene = this.visual_scenes[ vurl ];
						
						Logger.trace( " -> frameRate: " + this.vscene.frameRate );
						Logger.trace( " -> startTime: " + this.vscene.startTime );
						Logger.trace( " -> endTime: " + this.vscene.endTime );
					}
				}
				
				var psceneNode:XML = getNode( sceneNode, ASCollada.DAE_INSTANCE_PHYSICS_SCENE_ELEMENT );
				if( psceneNode )
				{
					var purl:String = getAttribute( psceneNode, ASCollada.DAE_URL_ATTRIBUTE );
					if( this.physics_scenes[purl] is DaePhysicsScene )
					{
						Logger.trace( "found physics scene: " + purl );
						this.pscene = this.physics_scenes[ purl ];
					}
				}
			}
		}
		
		private var _waitingAnimations:Array;
		
		private var _waitingGeometries:Array;
	}	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕色av一区二区三区| 国产精品网友自拍| 国产精品正在播放| 一区二区三区四区不卡视频| 精品国产123| 欧美伊人精品成人久久综合97| 国产一区二区成人久久免费影院 | 久久精品视频免费观看| 欧美性欧美巨大黑白大战| 国产精品白丝jk黑袜喷水| 日韩高清欧美激情| 亚洲激情图片一区| 中文字幕一区免费在线观看| 欧美电视剧免费观看| 欧美日韩国产一级二级| 91一区二区在线| 国产91高潮流白浆在线麻豆 | 国产精品亚洲一区二区三区在线| 亚洲18女电影在线观看| 亚洲免费观看在线视频| 国产欧美视频一区二区三区| 日韩精品专区在线影院观看| 欧美日本免费一区二区三区| 日本韩国欧美一区二区三区| 99视频一区二区三区| 激情文学综合网| 麻豆精品一区二区| 日本大胆欧美人术艺术动态| 日日骚欧美日韩| 亚洲国产毛片aaaaa无费看| 亚洲精品亚洲人成人网| 久久精品久久99精品久久| 亚洲国产精品综合小说图片区| 亚洲视频你懂的| 1000精品久久久久久久久| 国产欧美日韩激情| 国产欧美日韩不卡免费| 久久精品视频网| 国产精品色婷婷久久58| 中文字幕av资源一区| 欧美激情在线看| 日本一区二区在线不卡| 亚洲国产精品高清| 国产亚洲1区2区3区| 欧美v国产在线一区二区三区| 91精品国产乱| 日韩欧美激情在线| 欧美成人vps| 欧美精品一区二| 久久久久青草大香线综合精品| 国产拍欧美日韩视频二区| 欧美高清一级片在线观看| 亚洲欧洲日本在线| 亚洲品质自拍视频| 亚洲国产日韩一级| 另类小说色综合网站| 国产精品一线二线三线| 成人伦理片在线| 色素色在线综合| 欧美精品v日韩精品v韩国精品v| 日韩一区二区麻豆国产| 久久久噜噜噜久久人人看| 亚洲欧美在线观看| 亚洲午夜一区二区三区| 日本亚洲最大的色成网站www| 久久精品噜噜噜成人av农村| 国产一区二区按摩在线观看| 99在线精品观看| 欧美日韩mp4| 2021国产精品久久精品| 最新中文字幕一区二区三区| 亚洲风情在线资源站| 韩国成人在线视频| 色综合久久九月婷婷色综合| 欧美一级艳片视频免费观看| 国产午夜亚洲精品羞羞网站| 美美哒免费高清在线观看视频一区二区 | 日韩电影免费一区| 国产精品一区二区视频| 日本高清不卡在线观看| 欧美大尺度电影在线| 国产精品国产三级国产aⅴ中文 | 国产女人18水真多18精品一级做| 亚洲精品精品亚洲| 久久精品国产77777蜜臀| 本田岬高潮一区二区三区| 欧美日本一区二区| 欧美经典一区二区| 午夜亚洲福利老司机| 丁香啪啪综合成人亚洲小说| 欧美精品在欧美一区二区少妇| 国产日产欧美一区二区三区| 亚洲福利一区二区三区| 粉嫩一区二区三区性色av| 欧美久久一二区| 国产精品久久看| 久久国产福利国产秒拍| 色婷婷综合激情| 久久精品人人做人人爽97 | 9i在线看片成人免费| 91精品国产综合久久精品麻豆| 国产精品日产欧美久久久久| 91蜜桃在线观看| 精品国产一区二区三区不卡 | 亚洲电影第三页| 成人免费观看av| 精品国产一区二区在线观看| 夜夜嗨av一区二区三区网页| 99久久精品国产网站| 久久丝袜美腿综合| 蜜臀精品久久久久久蜜臀| 精品视频在线看| 最新中文字幕一区二区三区| 国内成人精品2018免费看| 555夜色666亚洲国产免| 亚洲一区二区三区四区的| 不卡的av电影在线观看| 久久久久久久电影| 麻豆国产精品官网| 69成人精品免费视频| 亚洲午夜在线视频| 在线一区二区三区四区五区| 国产精品久久三| 成人一区在线看| 国产日韩亚洲欧美综合| 国产一区美女在线| 精品精品欲导航| 久久草av在线| 欧美r级在线观看| 紧缚捆绑精品一区二区| 欧美不卡视频一区| 理论片日本一区| 日韩欧美国产小视频| 免费观看成人av| 精品久久久久久久一区二区蜜臀| 精品一区二区精品| 精品国产电影一区二区| 国产在线视频一区二区三区| www久久久久| 国产精品亚洲综合一区在线观看| 国产日韩影视精品| av电影在线观看一区| 中文字幕一区二区三区蜜月| 波多野结衣一区二区三区 | 日韩免费一区二区| 麻豆精品一区二区综合av| 亚洲精品一区二区三区精华液| 韩日精品视频一区| 久久精品一区二区三区不卡| 成人午夜激情视频| 亚洲欧美日韩一区二区| 欧洲一区在线电影| 日韩av午夜在线观看| 精品欧美乱码久久久久久1区2区| 国产美女在线精品| 亚洲美女电影在线| 欧美精品一卡两卡| 国产麻豆一精品一av一免费| 中文字幕中文字幕在线一区 | 亚洲大尺度视频在线观看| 91麻豆精品国产91久久久久久| 九九视频精品免费| 国产精品久久久久久久岛一牛影视| 色综合久久久久综合99| 免费黄网站欧美| 中文乱码免费一区二区| 欧洲生活片亚洲生活在线观看| 蜜臀国产一区二区三区在线播放| 久久久久亚洲综合| 色狠狠综合天天综合综合| 石原莉奈在线亚洲二区| 精品欧美久久久| 色呦呦网站一区| 麻豆91免费观看| 亚洲少妇最新在线视频| 91精品国产综合久久小美女| 成人在线视频一区| 亚洲bdsm女犯bdsm网站| 久久精品一区二区| 欧美另类变人与禽xxxxx| 国产很黄免费观看久久| 亚洲一级二级在线| 国产亚洲精品aa| 制服丝袜av成人在线看| 懂色一区二区三区免费观看| 天天色综合天天| 国产精品国产三级国产有无不卡 | 一区二区三区精品视频| 精品国产电影一区二区| 欧美丝袜丝交足nylons| 高清beeg欧美| 日本aⅴ精品一区二区三区| 中文字幕一区二区日韩精品绯色| 91精品国产综合久久蜜臀| 一本大道久久a久久综合婷婷| 国产美女av一区二区三区| 亚洲成av人片在线观看| 国产精品国产三级国产a| 欧美成人性战久久| 欧美色倩网站大全免费|