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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pv3dcolladascene.as

?? ActionScript寫的3D圖片展示功能
?? AS
?? 第 1 頁 / 共 2 頁
字號:
		/**
		 * @private
		 */	
		public function get rotationList():Object
		{
			return _rotationList;
		}
		
		public function PV3DColladaScene()
		{
			//BitmapMaterial.AUTO_MIP_MAPPING = true;
			super();
		}
		
		/**
		 * @private
		 */	
		override protected function init3D():void
		{
			StageTools.stage = stage;
			super.init3D();
			
			initScene();
		}
		
		/**
		 * @private
		 */	
		protected function initScene():void
		{

		}
		
		/**
		 * @private
		 * Creates the 3 main types of materials and loads external materials.
		 * 
		 * Note that smooth has been pulled. It was causing rte's about smooth not being a property of the materials.  Will have to fix later.
		 */	
		protected function createMaterials():void
		{
			if(debug) log.debug("extMaterials", extMaterials.dataProvider ? extMaterials.dataProvider.length : 0);
			var loadCollada:Boolean = false;
			
			if(extMaterials.dataProvider.length > 0)
			{
				// reset the materials que
				materialsQue = new Dictionary();
				
				var clrMat:ColorMaterial = new ColorMaterial(0x00ff00, .75);
				
				for(var i:Number=0;i<extMaterials.dataProvider.length;i++)
				{
					// materials are in library with linkage
					var materialsListItem:MaterialsListItem = MaterialsListItem(extMaterials.dataProvider[i]);
					
					var mov:MovieMaterial;
					
					switch(materialsListItem.materialType.toLowerCase())
					{
						case "bitmapassetmaterial":
							if(isLivePreview)
							{
								materialsList.addMaterial(clrMat, materialsListItem.materialName);
							}else
							{
								var bam:BitmapAssetMaterial = new BitmapAssetMaterial(materialsListItem.materialLocation);
								bam.precise = materialsListItem.precisionMaterial;
								loadCollada = true;
								bam.oneSide = materialsListItem.singleSided;
								if( materialsListItem.interactive ) bam.interactive = materialsListItem.interactive;
								if( materialsListItem.smooth ) bam.smooth = materialsListItem.smooth;
								if(materialsListItem.precisionMaterial)
								{
									//var pbam:PreciseBitmapAssetMaterial =  PreciseBitmapAssetMaterial(bam);
									bam.precision = materialsListItem.precision;
									bam.minimumRenderSize = materialsListItem.minimumRenderSize;
								}
								materialsList.addMaterial(bam, materialsListItem.materialName);
							}
							if(!checkForFileLoads(extMaterials)) loadCollada = true;
						break;
						
						case "bitmapfilematerial":
							var fileLocation:String = isLivePreview ? _localPath + materialsListItem.materialLocation : materialsListItem.materialLocation;
							fileLocation = fileLocation.split("\\").join("/");
							if(debug) log.debug("File to load", fileLocation);
							var bm:BitmapFileMaterial = new BitmapFileMaterial("");
							bm.precise = materialsListItem.precisionMaterial;
							bm.addEventListener(FileLoadEvent.LOAD_COMPLETE, handleBitmapFileLoadComplete);
							materialsQue[bm] = false;
							// setting the texture property actually causes the load of the file
							bm.texture = fileLocation;
							if( materialsListItem.interactive ) bm.interactive = materialsListItem.interactive;
							if( materialsListItem.smooth ) bm.smooth = materialsListItem.smooth;
							// because we didn't set the URL through the constructor, we have to set it manually if we want it back in the event thats disatched
							bm.url = fileLocation;
							bm.oneSide = materialsListItem.singleSided;
							if(materialsListItem.precisionMaterial)
							{
								//var pbm:PreciseBitmapFileMaterial =  PreciseBitmapFileMaterial(bm);
								bm.precision = materialsListItem.precision;
								bm.minimumRenderSize = materialsListItem.minimumRenderSize;
							}
							materialsList.addMaterial(bm, materialsListItem.materialName);
						break;
						
						case "movieassetmaterial":
							if(isLivePreview)
							{
								materialsList.addMaterial(clrMat, materialsListItem.materialName);
							}else
							{
								mov = new MovieAssetMaterial(materialsListItem.materialLocation, materialsListItem.transparent);
								mov.precise = materialsListItem.precisionMaterial;
								if(materialsListItem.animated) mov.animated = true;
								mov.oneSide = materialsListItem.singleSided;
								if( materialsListItem.interactive ) mov.interactive = materialsListItem.interactive;
								if( materialsListItem.smooth ) mov.smooth = materialsListItem.smooth;
								if(materialsListItem.precisionMaterial)
								{
									//var pmov:PreciseMovieAssetMaterial =  PreciseMovieAssetMaterial(mov);
									mov.precision = materialsListItem.precision;
									mov.minimumRenderSize = materialsListItem.minimumRenderSize;
								}
								materialsList.addMaterial(mov, materialsListItem.materialName);
							}
							if(!checkForFileLoads(extMaterials)) loadCollada = true;
						break;
						
						case "moviematerial":
							if(isLivePreview)
							{
								materialsList.addMaterial(clrMat, materialsListItem.materialName);
							}else
							{
								var movieClipReference:Sprite = StageTools.buildObjectFromString(materialsListItem.materialLocation) as Sprite;
								if( !movieClipReference )
								{
									trace("please privide a valid MovieClip or sprite instance");
									log.error("please privide a valid MovieClip or sprite instance");
									break;
								}
								mov = new MovieMaterial(movieClipReference, materialsListItem.transparent);
								mov.precise = materialsListItem.precisionMaterial;
								if(materialsListItem.animated) mov.animated = true;
								mov.oneSide = materialsListItem.singleSided;
								if( materialsListItem.interactive ) mov.interactive = materialsListItem.interactive;
								if( materialsListItem.smooth ) mov.smooth = materialsListItem.smooth;
								if(materialsListItem.precisionMaterial)
								{
									//var pmm:PreciseMovieMaterial = PreciseMovieMaterial(mov);
									mov.precision = materialsListItem.precision;
									mov.minimumRenderSize = materialsListItem.minimumRenderSize;
								}
								materialsList.addMaterial(mov, materialsListItem.materialName);
							}
							if(!checkForFileLoads(extMaterials)) loadCollada = true;
						break;
					}
				}
			}else
			{
				if(debug) log.debug("*************************** NO MATERIALS TO LOAD***************");
				loadCollada = true;
			}
			
			if(loadCollada)	createColladaScene();
		}
		
		/**
		 * @private
		 * Checks the load que to make sure all files are loaded before loading the collada scene
		 */	
		private function checkForFileLoads(obj:SimpleDataProvider):Boolean
		{			
			for(var i:Number=0;i<obj.dataProvider.length;i++)
			{
				var materialsListItem:MaterialsListItem = MaterialsListItem(extMaterials.dataProvider[i]);
				if(debug){
					log.debug("@@@@@@@@@@@@@@@@ checkForFileLoads", materialsListItem.materialType.toLowerCase());
				}
				if(materialsListItem.materialType.toLowerCase() == "file") return true;
			}
			
			return false;
		}
		
		/**
		 * @private
		 * When an external file is completely loaded, we receive this event and check to see if all the files have been loaded before loading the collada scene
		 */	
		protected function handleBitmapFileLoadComplete(e:FileLoadEvent):void
		{
			if(debug) log.debug("%%%%%% handleBitmapFileLoadComplete", e.file);
			materialsQue[e.target] = true;
			var bm:BitmapFileMaterial = BitmapFileMaterial(e.target);
			bm.removeEventListener(FileLoadEvent.LOAD_COMPLETE, handleBitmapFileLoadComplete);
			if(collada != null && materialsList.numMaterials > 0) collada.materials = materialsList;
			if(colladaFile.length > 0 && checkLoadedQue()) 
			{
				if(debug) log.debug("should load collada after getting all bitmaps");
				createColladaScene();
			}
		}
		
		/**
		 * @private
		 */	
		protected function checkLoadedQue():Boolean
		{
			for each(var items:Object in materialsQue)
			{
				if(!items) return false;
			}
			return true;
		}
		
		/**
		 * @private
		 */	
		override protected function stageResizeHandler(e:Event):void
		{			
			if(!resizeWithStage) return;
			if(debug) log.debug("stageResize");
			resizeStage();
		}
		
		/**
		 * @private
		 * Creates the Collada object and loads the file
		 */	
		protected function createColladaScene():void
		{
			if(colladaFile.length == 0) return;
			
			if(debug) log.debug("createColladaScene", colladaFile, scene == null);
			
			if(collada != null) scene.removeChild(collada);
			
			fileLocation = isLivePreview ? _localPath + colladaFile : colladaFile;
			if(debug) log.debug("fileLocation for collada", fileLocation);
			
			collada = scene.addChild( new DAE() ) as DAE;
			collada.addEventListener( Event.COMPLETE, handleLoadComplete );
			collada.addEventListener( ProgressEvent.PROGRESS, handleLoadProgress );
			collada.addEventListener( IOErrorEvent.IO_ERROR, handleLoadError);
			collada.scale = sceneScale;
			/* 
			if( collada && collada.container ) collada.container.graphics.clear();
			collada = new Collada(fileLocation, materialsList, sceneScale,{localPath:localPath});
			scene.addChild(collada);
			collada.addEventListener(FileLoadEvent.LOAD_COMPLETE, handleLoadComplete);
			collada.addEventListener(FileLoadEvent.LOAD_PROGRESS, handleLoadProgress);
			collada.addEventListener(FileLoadEvent.LOAD_ERROR, handleLoadError);
			collada.addEventListener(FileLoadEvent.SECURITY_LOAD_ERROR, handleLoadError);
			 */
		}
		
		/**
		 * @private
		 * Called when Collada file is completely rendered
		 */	
		protected function handleLoadComplete(e:Event):void
		{
			if(debug) log.debug("handleLoadComplete - Collada");
			// remove listeners
			collada.removeEventListener( Event.COMPLETE, handleLoadComplete );
			collada.removeEventListener( ProgressEvent.PROGRESS, handleLoadProgress );
			collada.removeEventListener( IOErrorEvent.IO_ERROR, handleLoadError);
			
			finalizeColladaLoad();
		}
		
		/**
		 * @private
		 * Called when Collada progress event is dispatched
		 */	
		protected function handleLoadProgress(e:ProgressEvent):void
		{
			dispatchEvent(new FileLoadEvent(SCENE_LOAD_PROGRESS, fileLocation, e.bytesLoaded, e.bytesTotal));
		}
		
		/**
		 * @private
		 * Called when Collada has an error with loading the DAE file specified
		 */	
		protected function handleLoadError(e:IOErrorEvent):void
		{
			dispatchEvent(new FileLoadEvent(SCENE_LOAD_ERROR, fileLocation, 0, 0, e.text));
		}
		
		/**
		 * @private
		 * Called after Collada file is loaded completely.  sets the rotation, and updates the scene.
		 */	
		protected function finalizeColladaLoad():void
		{			
			collada.rotationX = rotationList.pitch;
			collada.rotationY = rotationList.yaw;
			collada.rotationZ = rotationList.roll;			
			
			updateScene();
			
			dispatchEvent(new FileLoadEvent(SCENE_COMPLETE));
			
			// set to false so no unnecessary redraws occur
			rebuildCollada = false;
			
			if(sceneRotation && !isLivePreview)
			{
				ObjectController.getInstance().registerStage(this.stage);
				ObjectController.getInstance().registerControlObject(collada);
			}
			
			// for debugging
			if(debug) showChildren();
		}
		
		/**
		 * @private
		 * Just for testing to see the children of the collada object
		 */	
		private function showChildren():void
		{
			//for each(var item:Object in collada.children) if(debug) trace("collada children: ", item.name);
		}
		
		/**
		 * @private
		 */	
		override protected function handleTimerUpdate(e:TimerEvent):void
		{
			updateScene();
		}
		
		/**
		 * @private
		 * Used for matching the materials list that comes in when an update occurs on the component at Designtime.  A brand new version is sent with every change to the 
		 * component at design time, so we have to crawl through and verify if it's been changed to really know if we need to re-render the collada scene.
		 */	
		private function checkMaterialListsMatch(obj_0:SimpleDataProvider, obj_1:SimpleDataProvider):Boolean
		{
			if(obj_0.dataProvider.length != obj_1.dataProvider.length) return false;
			
			for(var i:Number=0;i<obj_0.dataProvider.length;i++)
			{
				// materials are in library with linkage
				var m0:MaterialsListItem = MaterialsListItem(obj_0.dataProvider[i]);
				var m1:MaterialsListItem = MaterialsListItem(obj_1.dataProvider[i]);
								
				var props:Array = PropertyTools.getProperties(m0);
				
				for (var ii:Number=0;i<props.length;i++)
				{
					if(debug) log.debug("compare", m0[props[i].name] + ", " + m1[props[i].name]);
					if(m0[props[i].name] != m1[props[i].name]) return false;
				}
				
			}
			
			return true;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7878成人国产在线观看| av在线不卡电影| 制服丝袜中文字幕亚洲| 天使萌一区二区三区免费观看| 欧美日韩视频第一区| 日韩中文字幕91| 欧美tickling挠脚心丨vk| 国产乱人伦偷精品视频不卡| 中文字幕在线不卡国产视频| 91麻豆成人久久精品二区三区| 香蕉乱码成人久久天堂爱免费| 欧美一区二区福利在线| 国产精品1区2区3区| 成人欧美一区二区三区| 欧美色欧美亚洲另类二区| 麻豆一区二区在线| 国产精品美女久久久久久| 色94色欧美sute亚洲线路一ni | 蜜芽一区二区三区| 久久综合狠狠综合久久综合88| 福利电影一区二区| 亚洲免费av观看| 欧美成人福利视频| 91视视频在线观看入口直接观看www | 亚洲国产欧美在线| 精品国产免费久久| 色www精品视频在线观看| 麻豆91免费观看| 亚洲男人电影天堂| 精品国产麻豆免费人成网站| 91精品办公室少妇高潮对白| 久久成人免费日本黄色| 亚洲欧美色图小说| 日韩一区二区电影在线| 99精品久久久久久| 久88久久88久久久| 亚洲国产精品一区二区久久 | 久久97超碰色| 亚洲成人一区在线| 国产精品久久久久久久久图文区| 欧美精品亚洲一区二区在线播放| 成人网男人的天堂| 美女视频黄久久| 亚洲成av人片一区二区梦乃 | 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成人自拍偷拍| 综合色中文字幕| 久久九九国产精品| 欧美xingq一区二区| 69堂成人精品免费视频| 色综合久久中文字幕| 岛国av在线一区| 国产精品一区在线观看乱码| 久久精品国产亚洲一区二区三区| 亚洲狠狠爱一区二区三区| 亚洲欧美经典视频| 国产精品国产自产拍高清av王其| 久久久影视传媒| 日韩欧美的一区二区| 欧美群妇大交群中文字幕| 色综合久久88色综合天天免费| 欧美一区二区三区四区视频| jlzzjlzz亚洲女人18| 国产成人免费高清| 国产麻豆一精品一av一免费 | 国产精品久久久久久久蜜臀| 国产色91在线| 久久久久久久久久久久久久久99| 91精品国产综合久久久久久久久久 | 国产精品久久精品日日| 欧美激情在线一区二区| 日本一区二区久久| 国产精品乱子久久久久| 中文字幕日韩精品一区| 中文字幕一区二区三区av| 中文字幕欧美日韩一区| 国产精品久久久久婷婷| 亚洲人成网站精品片在线观看| 亚洲欧洲日本在线| 亚洲免费视频成人| 亚洲gay无套男同| 日本va欧美va欧美va精品| 日本一道高清亚洲日美韩| 免费视频一区二区| 狠狠色丁香婷婷综合| 国产精品亚洲一区二区三区妖精| 国产精品一卡二卡在线观看| 国产99久久久国产精品潘金| www.av精品| 欧美精品高清视频| 精品蜜桃在线看| 国产精品天美传媒沈樵| 亚洲一区欧美一区| 天堂一区二区在线免费观看| 欧美a一区二区| 韩国毛片一区二区三区| 9久草视频在线视频精品| 26uuu亚洲| 最新热久久免费视频| 亚洲综合免费观看高清在线观看| 日日骚欧美日韩| 国产精品69毛片高清亚洲| 91免费视频大全| 欧美日韩国产高清一区二区三区 | 欧美mv和日韩mv的网站| 国产精品美女久久久久久| 亚洲视频免费观看| 日韩一区精品字幕| 精品一区二区免费视频| 一本久道久久综合中文字幕| 欧美精品tushy高清| 久久久久久久精| 一区二区三区在线播放| 久久精品国产77777蜜臀| 99久久久久免费精品国产| 欧美高清激情brazzers| 国产日韩欧美制服另类| 亚洲国产精品一区二区久久恐怖片 | 国产最新精品免费| 一道本成人在线| 久久伊人蜜桃av一区二区| 亚洲一区二区三区小说| 国产麻豆精品在线观看| 欧美日韩欧美一区二区| 欧美国产精品一区二区三区| 日产精品久久久久久久性色| 91最新地址在线播放| 精品88久久久久88久久久| 一区二区三区影院| 国产成人免费在线观看不卡| 欧美日韩国产一二三| 中文字幕中文乱码欧美一区二区 | 国产综合一区二区| 欧美日韩精品高清| 自拍偷在线精品自拍偷无码专区| 青青草国产精品97视觉盛宴| 99国产精品久久久久久久久久| 精品国产乱码久久久久久老虎| 一区二区三区欧美| 不卡一区二区在线| 国产日韩欧美电影| 国精产品一区一区三区mba桃花| 欧美日韩免费在线视频| 国产精品乱子久久久久| 国产精品66部| 欧美精品一区二区三区一线天视频 | 国产精品女人毛片| 亚洲 欧美综合在线网络| av亚洲精华国产精华精华| 久久久久久影视| 久久99国产精品免费网站| 3751色影院一区二区三区| 亚洲男人都懂的| 一本到一区二区三区| 亚洲素人一区二区| av一区二区三区黑人| 久久久久久久久久久电影| 国产老妇另类xxxxx| 久久影视一区二区| 国产精品一区二区黑丝| 久久久99精品免费观看不卡| 精品中文字幕一区二区| 精品久久久久久亚洲综合网| 日本91福利区| 日韩免费高清电影| 国产又粗又猛又爽又黄91精品| 日韩欧美你懂的| 国产一区二区精品在线观看| 久久综合狠狠综合| 国产不卡视频一区| 日韩一区欧美小说| 日本道在线观看一区二区| 一区二区三区在线播| 欧美日韩中文字幕一区| 午夜国产不卡在线观看视频| 5566中文字幕一区二区电影 | 国产一区视频在线看| 久久久久久一级片| 成人av影院在线| 一区二区三区国产| 91精品国产乱| 国产精品一级二级三级| 亚洲国产成人在线| 日本乱码高清不卡字幕| 五月婷婷久久丁香| 日韩欧美国产精品| 成人激情午夜影院| 一区二区三区国产精品| 日韩视频一区二区| 成人高清伦理免费影院在线观看| 一区二区三区在线视频观看| 91精品国产欧美日韩| 成人网男人的天堂| 亚洲超碰精品一区二区| 精品99久久久久久| 色屁屁一区二区| 看电影不卡的网站| 一区视频在线播放| 在线电影院国产精品| 国产宾馆实践打屁股91|