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

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

?? ase.as

?? ActionScript寫的3D圖片展示功能
?? AS
字號:
package org.papervision3d.objects.parsers {
	import flash.events.*;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	
	import org.papervision3d.Papervision3D;
	import org.papervision3d.core.geom.*;
	import org.papervision3d.core.geom.renderables.Triangle3D;
	import org.papervision3d.core.geom.renderables.Vertex3D;
	import org.papervision3d.core.math.NumberUV;
	import org.papervision3d.core.proto.*;
	import org.papervision3d.events.FileLoadEvent;	

	/**
	* The Ase class lets you load and parse ASE format objects exported from 3DS Max.
	* <p/>
	* Only the geometry and mapping of one mesh is currently parsed.
	* <p/>
	* For more complex objects, it is recommended to import Collada scenes with addCollada method.
	*/
	public class Ase extends TriangleMesh3D
	{
		/**
		* Whether or not the scene has been loaded.
		*/
		public var loaded :Boolean;
	
		/**
		* Default scaling value for constructor.
		*/
		static public var DEFAULT_SCALING  :Number = 1;
	
		/**
		* Internal scaling value.
		*/
		static public var INTERNAL_SCALING :Number = 50;
	
		// ___________________________________________________________________________________________________
		//                                                                                               N E W
		// NN  NN EEEEEE WW    WW
		// NNN NN EE     WW WW WW
		// NNNNNN EEEE   WWWWWWWW
		// NN NNN EE     WWW  WWW
		// NN  NN EEEEEE WW    WW
	
		/**
		* Creates a new Ase object that will load and parse a 3DS Max exported .ASE mesh.
		* <p/>
		* Only the geometry and mapping of one mesh is currently parsed.
		* <p/>
		* @param	material	A MaterialObject3D object that contains the material properties of the object.
		* <p/>
		* @param	filename	Filename of the .ASE object to parse.
		* <p/>
		* @param	scale		Scaling factor.
		* <p/>
		* @param	initObject	[optional] - An object that contains user defined properties with which to populate the newly created GeometryObject3D.
		* <p/>
		* It includes x, y, z, rotationX, rotationY, rotationZ, scaleX, scaleY scaleZ and a user defined extra object.
		* <p/>
		* If extra is not an object, it is ignored. All properties of the extra field are copied into the new instance. The properties specified with extra are publicly available.
		*/
		public function Ase( material:MaterialObject3D, filename:String, scale:Number=1, initObject:Object=null )
		{
			super( material, new Array(), new Array(), null, initObject );
	
			this._scaleAse = scale;
			this._filename = filename;
	
			this.loaded = false;
	
			loadAse( filename );
		}
	
	
		private function loadAse( filename:String ):void
		{
			_loaderAse = new URLLoader();
			_loaderAse.addEventListener( Event.COMPLETE, parseAse );
			_loaderAse.addEventListener( ProgressEvent.PROGRESS, progressHandler);
			_loaderAse.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler);
	
	        var request:URLRequest = new URLRequest(filename);
	
			try
			{
	            _loaderAse.load(request);
			}
			catch(e:Error)
			{
				Papervision3D.log( "error in loading ase file" );
			}
		}
	
		// ___________________________________________________________________________________________________
		//                                                                                               A S E
		//   AA    SSSSS  EEEEEE
		//  AAAA  SS      EE
		// AA  AA  SSSS   EEEE
		// AAAAAA     SS  EE
		// AA  AA SSSSS   EEEEEE PARSER
	
		/**
		* Taken from w3d at http://blog.andre-michelle.com/2005/flash8-sourcecodes
		* By Andre Michelle, with much respect
		*/
	
		private function parseAse( e:Event ):void
		{
			var scale:Number = this._scaleAse;
			scale *= INTERNAL_SCALING;
	
			var vertices :Array = this.geometry.vertices = new Array();
			var faces    :Array = this.geometry.faces = new Array();
	
			var loader:URLLoader = URLLoader(e.target);
			var lines: Array = unescape(loader.data).split( '\r\n' );
	
			var line: String;
			var chunk: String;
			var content: String;
	
			var uvs:Array = new Array();
	
			var material :MaterialObject3D = this.material;
	
			while( lines.length )
			{
				line = String( lines.shift() );
	
				//-- clear white space from beginn
				line = line.substr( line.indexOf( '*' ) + 1 );
	
				//-- clear closing brackets
				if( line.indexOf( '}' ) >= 0 ) line = '';
	
				//-- get chunk description
				chunk = line.substr( 0, line.indexOf( ' ' ) );
	
				switch( chunk )
				{
					case 'MESH_VERTEX_LIST':
						try
						{
							while( ( content = String( lines.shift() ) ).indexOf( '}' ) < 0 )
							{
								content = content.split("*")[1];
	
								//content = content.split("    ").join("\t");
								var mvl: Array = content.split(  '\t' ); // separate here
	
								var x:Number = Number( mvl[1] ) * scale;
								var y:Number = Number( mvl[3] ) * scale;
								var z:Number = Number( mvl[2] ) * scale; // Swapped Y and Z
	
								vertices.push( new Vertex3D( x, y, z ) );
							}
						}
						catch(e:Error)
						{
							Papervision3D.log( "MESH_VERTEX_LIST error" );
						}
						break;
	
	
					case 'MESH_FACE_LIST':
						try
						{
							while( ( content = String( lines.shift() ) ).indexOf( '}' ) < 0 )
							{
								content = content.split("*")[1];
	
								var mfl: String = content.split('\t')[0]; // ignore: [MESH_SMOOTHING,MESH_MTLID]
								var drc: Array = mfl.split( ':' ); // separate here
	
								var con: String;
								con = drc[2];
								var a:Vertex3D = vertices[ int( con.substr( 0, con.lastIndexOf( ' ' ) ) ) ];
	
								con = drc[3];
								var b:Vertex3D = vertices[ int( con.substr( 0, con.lastIndexOf( ' ' ) ) ) ];
	
								con = drc[4];
								var c:Vertex3D = vertices[ int( con.substr( 0, con.lastIndexOf( ' ' ) ) ) ];
	
								// Swap b/c
								faces.push( new Triangle3D(this,[a, b, c], null, [new NumberUV(), new NumberUV(), new NumberUV()] ) );
							}
						}
						catch(e:Error)
						{
							Papervision3D.log( "MESH_FACE_LIST : " );
						}
						break;
	
					case 'MESH_TVERTLIST':
						try
						{
							while( ( content = String( lines.shift() ) ).indexOf( '}' ) < 0 )
							{
								content = content.split("*")[1];
	
								var mtvl: Array = content.split(  '\t' ); // separate here
								uvs.push( new NumberUV( parseFloat( mtvl[1] ), parseFloat( mtvl[2] ) ) );
							}
						}
						catch(e:Error)
						{
							Papervision3D.log( "MESH_TVERTLIST error" + e.message );
						}
						break;
	
	
					case 'MESH_TFACELIST':
						try
						{
							var num: int = 0;
	
							while( ( content = String( lines.shift() ) ).indexOf( '}' ) < 0 )
							{
	
								content = content.substr( content.indexOf( '*' ) + 1 );
								var mtfl: Array = content.split(  '\t' ); // separate here
	
								var faceUV:Array = faces[ num ].uv;
								faceUV[0] = uvs[ parseInt( mtfl[1] )];
								faceUV[1] = uvs[ parseInt( mtfl[2] )];
								faceUV[2] = uvs[ parseInt( mtfl[3] )];
								num++;
	
							}
						}
						catch(e:Error)
						{
							Papervision3D.log( "MESH_TFACELIST ERROR" + e.message );
						}
						break;
				}
			}
	
			
	
			// dispatch event
			var fileEvent:FileLoadEvent = new FileLoadEvent( FileLoadEvent.LOAD_COMPLETE, _filename );
			dispatchEvent( fileEvent );
	
			this.loaded = true;
			this.geometry.ready = true;
			Papervision3D.log( "Parsed ASE: " + this._filename + " [vertices:" + vertices.length + " faces:" + faces.length + "]" );
		}
	
		// ___________________________________________________________________________________________________
	
		private function ioErrorHandler(event:IOErrorEvent):void
		{
			var fileEvent:FileLoadEvent = new FileLoadEvent( FileLoadEvent.LOAD_ERROR, _filename );
			dispatchEvent( fileEvent );
			throw new Error("Ase: ioErrorHandler Error.");
		}
	
		private function progressHandler(event:ProgressEvent):void
		{
			Papervision3D.log("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
		}
	
		// ___________________________________________________________________________________________________
	
		private var _scaleAse  :Number;
	    private var _loaderAse :URLLoader;
		private var _filename  :String;
	
		//private var log:XrayLog = new XrayLog();
		}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清成人免费视频| 亚洲国产中文字幕| 日韩欧美激情在线| 欧美精品日韩综合在线| 色网综合在线观看| 色综合久久久久| 成人黄色国产精品网站大全在线免费观看| 视频一区中文字幕| 夜夜操天天操亚洲| 在线观看日韩毛片| 欧美剧情电影在线观看完整版免费励志电影 | 欧美麻豆精品久久久久久| 在线观看91视频| 日韩限制级电影在线观看| 国产精品乱码久久久久久| 欧美精品在线观看一区二区| 在线观看视频一区二区欧美日韩| 一本色道久久综合精品竹菊| 91一区二区三区在线播放| 91视频com| 欧美最猛性xxxxx直播| 欧美肥胖老妇做爰| 精品国产污网站| 国产日韩欧美制服另类| 亚洲欧美日韩中文字幕一区二区三区 | 国产福利一区二区三区在线视频| 国产成人综合在线观看| 99精品国产视频| 欧美日韩亚州综合| 久久久久久久久99精品| 亚洲欧洲另类国产综合| 性做久久久久久久免费看| 麻豆成人久久精品二区三区红 | 成人av在线播放网址| 91女神在线视频| 日韩一区二区在线观看视频 | 亚洲精品videosex极品| 香蕉影视欧美成人| 国产精品一区二区你懂的| 99re在线精品| www亚洲一区| ...xxx性欧美| 激情综合网天天干| 在线观看日韩一区| 国产三级精品在线| 热久久国产精品| 成人免费三级在线| 精品少妇一区二区三区日产乱码| 日本一区二区三区免费乱视频 | 国产午夜亚洲精品午夜鲁丝片| 国产精品卡一卡二| 欧美va亚洲va| 91片在线免费观看| 久久久久97国产精华液好用吗| 一区二区视频免费在线观看| 国内不卡的二区三区中文字幕| 欧美午夜精品免费| 国产精品久久久久一区二区三区共| 男男成人高潮片免费网站| 色又黄又爽网站www久久| 国产精品天干天干在线综合| 久久精品国产秦先生| 欧美日韩国产色站一区二区三区| 国产精品人成在线观看免费| 久久99精品国产麻豆不卡| 欧美日本在线观看| 亚洲福中文字幕伊人影院| 91尤物视频在线观看| 亚洲欧洲成人自拍| 成人性生交大片免费看在线播放| 欧美成人性战久久| 久久精品国产99| 日韩欧美www| 久久99热99| 日韩欧美亚洲国产另类 | 日韩免费视频一区| 日韩av二区在线播放| 欧美日韩一区中文字幕| 亚洲一卡二卡三卡四卡五卡| 91丨porny丨国产入口| 国产精品国产三级国产| 成人av在线一区二区三区| 国产精品亲子乱子伦xxxx裸| 国产福利一区二区| 国产精品蜜臀av| 成人午夜免费av| 亚洲三级视频在线观看| 91在线视频18| 亚洲自拍另类综合| 欧美一区二区三区喷汁尤物| 日本成人在线电影网| 精品久久久网站| 国产99精品国产| 亚洲激情一二三区| 欧美性感一类影片在线播放| 视频在线观看一区二区三区| 91精品国产欧美日韩| 精彩视频一区二区| 国产丝袜美腿一区二区三区| www.av亚洲| 一区二区三区国产| 欧美第一区第二区| 成人国产一区二区三区精品| 亚洲男人的天堂av| 91官网在线观看| 久热成人在线视频| 色94色欧美sute亚洲线路二| 亚洲一二三四区不卡| 日韩午夜中文字幕| 成人国产精品免费观看动漫| 国产精品午夜春色av| 一区二区三区在线影院| 91麻豆.com| 国内精品久久久久影院色 | 最新国产成人在线观看| 欧美美女直播网站| 国产成a人亚洲精| 日韩精品一二三四| 一区二区三区日韩欧美| 久久精品国产网站| 中文字幕综合网| 欧美videofree性高清杂交| 91在线免费播放| 国内成+人亚洲+欧美+综合在线| 丝袜美腿亚洲一区| 国产日韩欧美综合一区| 欧美嫩在线观看| 不卡av免费在线观看| 久久国产麻豆精品| 一区二区三区av电影 | 成人精品国产一区二区4080| 日产国产欧美视频一区精品| 综合亚洲深深色噜噜狠狠网站| 日韩一区二区在线看| 欧美图片一区二区三区| proumb性欧美在线观看| 麻豆精品在线观看| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲va天堂va国产va久| 国产精品日韩成人| 久久久国产精华| 日韩欧美国产午夜精品| 欧美精品乱码久久久久久| av一区二区三区| 波多野结衣视频一区| 国产成人高清在线| 国产麻豆91精品| 国内一区二区视频| 男男成人高潮片免费网站| 亚洲成av人综合在线观看| 亚洲在线免费播放| 亚洲视频小说图片| 亚洲色图19p| 亚洲精品福利视频网站| 亚洲人吸女人奶水| 一区二区三区四区不卡视频| 亚洲日本在线天堂| 亚洲色图另类专区| 一区二区不卡在线视频 午夜欧美不卡在| 中文字幕一区二区三区色视频| 欧美国产激情二区三区| 中文字幕不卡的av| 国产精品久久久久aaaa| 最近中文字幕一区二区三区| 国产精品国产三级国产普通话99 | 国产成人精品一区二| 国产不卡高清在线观看视频| 成人午夜免费视频| 91国内精品野花午夜精品| 欧美精品v国产精品v日韩精品| 日韩视频在线观看一区二区| 欧美成人一区二区三区片免费| 国产欧美综合在线观看第十页| 久久精品在这里| 国产精品福利一区二区| 亚洲综合另类小说| 麻豆精品国产91久久久久久| 国产精品综合一区二区三区| 成人福利电影精品一区二区在线观看 | 久久精品72免费观看| 国产伦精品一区二区三区免费 | 欧美一级淫片007| 欧美极品aⅴ影院| 亚洲国产精品久久人人爱| 水蜜桃久久夜色精品一区的特点| 日本不卡一二三| 国产91精品露脸国语对白| 不卡av免费在线观看| 在线观看国产日韩| 欧美高清激情brazzers| 26uuu色噜噜精品一区| 一级日本不卡的影视| 看片网站欧美日韩| 日韩女优av电影| 国产精品麻豆网站| 日本亚洲三级在线| 高清成人免费视频| 欧美一卡2卡3卡4卡| 中文字幕中文乱码欧美一区二区 | 亚洲色欲色欲www|