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

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

?? pv3dcolladascene.as.svn-base

?? ActionScript寫的3D圖片展示功能
?? SVN-BASE
?? 第 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一区二区三区免费野_久草精品视频
不卡视频一二三| 97成人超碰视| 亚洲丝袜制服诱惑| 欧美一区二区免费观在线| 成人午夜免费电影| 麻豆视频一区二区| 亚洲亚洲人成综合网络| 国产日韩欧美一区二区三区综合| 欧美日韩免费电影| 99精品热视频| 国产福利一区二区三区视频| 亚洲成人资源在线| 中文字幕一区二区三区色视频 | 成人午夜av影视| 日韩精品乱码av一区二区| 中文字幕一区二区三区色视频 | 色94色欧美sute亚洲线路二| 国产乱人伦偷精品视频免下载| 亚洲第一精品在线| 一区二区三区在线视频播放| 中文字幕成人在线观看| 日韩欧美123| 制服丝袜日韩国产| 精品视频色一区| 色综合久久综合网| 播五月开心婷婷综合| 国产裸体歌舞团一区二区| 日本系列欧美系列| 丝袜美腿亚洲一区| 亚洲成人动漫av| 亚洲自拍与偷拍| 亚洲精品伦理在线| 亚洲免费视频中文字幕| 国产精品国产自产拍高清av| 国产亚洲一区二区三区四区| 精品国产乱码久久久久久影片| 在线不卡免费av| 欧美一级夜夜爽| 91精品国产色综合久久不卡蜜臀 | 欧美在线视频全部完| 国产一区二区三区久久悠悠色av| 日韩激情中文字幕| 青娱乐精品视频| 日本美女一区二区| 日本女人一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 午夜精品福利一区二区蜜股av| 亚洲一区二区三区激情| 亚洲国产一区二区在线播放| 亚洲综合精品久久| 青娱乐精品视频| 黄色日韩三级电影| 国产精品99久久久久久久女警| 国产一区二区美女| 成人a区在线观看| 99re6这里只有精品视频在线观看| 波波电影院一区二区三区| 99久久99久久免费精品蜜臀| 91浏览器在线视频| 在线播放视频一区| 欧美tickle裸体挠脚心vk| 久久久久久久久久久99999| 国产精品无遮挡| 悠悠色在线精品| 免费看欧美美女黄的网站| 精品综合免费视频观看| 国产不卡免费视频| 99精品桃花视频在线观看| 在线观看欧美日本| 欧美mv日韩mv| 国产精品国产三级国产aⅴ入口 | 精品久久久影院| 国产精品日日摸夜夜摸av| 亚洲人123区| 日韩精品亚洲一区二区三区免费| 日本不卡免费在线视频| 国产福利一区二区三区视频| 色婷婷久久久亚洲一区二区三区| 欧美精品自拍偷拍动漫精品| 精品国产一区二区三区av性色| 国产精品福利av| 日韩专区一卡二卡| 国产91丝袜在线播放| 欧洲一区在线观看| 国产喂奶挤奶一区二区三区| 亚洲美女一区二区三区| 久久99精品久久久久久| 99久久精品国产一区| 这里只有精品99re| 国产精品麻豆网站| 偷拍亚洲欧洲综合| 成人在线视频一区二区| 911精品国产一区二区在线| 久久精品免费在线观看| 天天操天天色综合| thepron国产精品| 欧美岛国在线观看| 亚洲综合丝袜美腿| 成人爱爱电影网址| 日韩精品一区二区三区中文精品| 国产精品国产馆在线真实露脸 | 国内久久精品视频| 欧美色视频一区| 国产欧美综合色| 蜜臀久久99精品久久久久宅男| av动漫一区二区| 久久综合九色综合97婷婷| 一二三区精品福利视频| 成人天堂资源www在线| 日韩精品一区二区三区视频播放| 一区二区三区在线视频免费| 国产精品2024| 日韩欧美国产综合| 亚洲在线中文字幕| av在线播放成人| 久久毛片高清国产| 美腿丝袜亚洲一区| 欧美色倩网站大全免费| 亚洲人精品午夜| 国产福利电影一区二区三区| 日韩一区二区麻豆国产| 亚洲在线观看免费视频| 一本色道久久加勒比精品 | 91视视频在线观看入口直接观看www | 中文字幕精品—区二区四季| 奇米精品一区二区三区在线观看一| 91同城在线观看| 国产欧美日韩中文久久| 精品伊人久久久久7777人| 欧美电影一区二区| 天堂蜜桃91精品| 欧美午夜寂寞影院| 一二三区精品福利视频| 91亚洲永久精品| 国产精品不卡一区| 99久久精品免费精品国产| 国产精品对白交换视频| 成人午夜激情视频| 国产精品伦理在线| 成人激情文学综合网| 日本v片在线高清不卡在线观看| 欧美日韩一卡二卡三卡| 亚洲一区二区三区四区不卡| 欧美羞羞免费网站| 亚洲成在人线免费| 欧美精三区欧美精三区| 日韩成人dvd| 欧美成人r级一区二区三区| 久久精品国产精品亚洲综合| 精品久久五月天| 成人一区二区视频| 国产精品天天摸av网| 91麻豆蜜桃一区二区三区| 亚洲乱码国产乱码精品精可以看| 91成人在线观看喷潮| 亚洲成人免费视| 91精品国产一区二区三区香蕉| 毛片基地黄久久久久久天堂| 精品国产乱码久久久久久图片| 国产精品99久久久| 亚洲伦在线观看| 欧美精选午夜久久久乱码6080| 麻豆精品国产91久久久久久| 国产校园另类小说区| 99久精品国产| 视频一区中文字幕国产| 精品久久久三级丝袜| 国产91露脸合集magnet| 亚洲精品乱码久久久久久日本蜜臀| 欧美视频一区二区三区四区| 麻豆成人在线观看| 国产精品福利一区二区| 欧美三级电影精品| 激情综合色综合久久| 国产精品毛片无遮挡高清| 欧美在线综合视频| 韩国av一区二区三区在线观看| 亚洲视频综合在线| 6080日韩午夜伦伦午夜伦| 国产乱码精品一区二区三区忘忧草| 欧美高清一级片在线观看| 欧美无人高清视频在线观看| 激情六月婷婷久久| 亚洲永久免费视频| 久久久99免费| 欧美午夜精品免费| 国产电影精品久久禁18| 亚洲综合激情网| 国产日本一区二区| 欧美一区二区视频在线观看2022 | 成人精品视频一区二区三区尤物| 亚洲专区一二三| 久久久久久99久久久精品网站| 色女孩综合影院| 国产一区二区三区在线看麻豆| 一区二区三区四区精品在线视频| 精品理论电影在线观看 | 久久久久久久性| 欧美日韩一二三区| 国产91丝袜在线播放0|