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

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

?? simpledistortion.as

?? Flex三維特效 examples - see DistortionExamples.mxml bin - Use the included SWC component for productio
?? AS
?? 第 1 頁 / 共 2 頁
字號:
		
		public function renderSides( leftPercentageDistance : Number, 
											topPercentageDistance : Number, 
											rightPercentageDistance : Number, 
											bottomPercentageDistance : Number ) : void
		{
			initDistortImage();
			
			var corners : DisplayObjectBounds = getSimpleBounds();
			renderSidesWithBounds( corners, leftPercentageDistance, 
												topPercentageDistance, 
												rightPercentageDistance, 
												bottomPercentageDistance );
		}		
		
		public function renderSidesInPixels( leftValueDistance : Number, 
														topValueDistance : Number, 
														rightValueDistance : Number, 
														bottomValueDistance : Number ) : void
		{
			initDistortImage();
			
			var corners : DisplayObjectBounds = getSimpleBounds();
			renderSidesInPixelsWithBounds( corners, 
													leftValueDistance, 
													topValueDistance, 
													rightValueDistance, 
													bottomValueDistance );
		}
				
		public function renderCorners( topLeft : Point, 
												topRight : Point, 
												bottomRight : Point, 
												bottomLeft : Point ) : void
		{
			initDistortImage();	
			
			var corners : DisplayObjectBounds = getSimpleBounds();
			
			renderCornersWithBounds( corners, 
											topLeft, 
											topRight, 
											bottomRight, 
											bottomLeft );
		}
		
		public function renderCornersInPixels( topLeft : Point, topRight : Point, 
										bottomRight : Point, bottomLeft : Point ) : void
		{
			initDistortImage();
			
			setTransform( topLeft.x, topLeft.y,  
							topRight.x, topRight.y, 
							bottomRight.x, bottomRight.y, 
							bottomLeft.x, bottomLeft.y );
		}
		
		public function destroy( restoreTarget : Boolean = true ) : void
		{
			if( !isDistorted ) return;
			
			restore( restoreTarget );
						
			if( distort != null )
			{
				if( distort.texture != null ) distort.texture.dispose();				
			}
			distort = null;
			isDistorted = false;
		}
			
		protected function initialize() : void
		{
			if( buildMode == DistortionConstants.REPLACE )
			{
				findParent();
				
				target.addEventListener( Event.ADDED, catchAddedEvent );
				target.addEventListener( Event.REMOVED, catchRemovedEvent );
				
				if( targetContainer.contains( target ) )
				{
					justAddChild = false;
					replaceTarget( DisplayObject( target ), DisplayObject( container ) );
				}
				else
				{
					justAddChild = true;
					addContainer( DisplayObject( container ) );
				}
				
				target.removeEventListener( Event.ADDED, catchAddedEvent );
				target.removeEventListener( Event.REMOVED, catchRemovedEvent );
			}
			else if( buildMode == DistortionConstants.ADD )
			{
				findParent();
				
				target.addEventListener( Event.ADDED, catchAddedEvent );
				target.addEventListener( Event.REMOVED, catchRemovedEvent );				
				
				addContainer( DisplayObject( container ) );
				
				target.removeEventListener( Event.ADDED, catchAddedEvent );
				target.removeEventListener( Event.REMOVED, catchRemovedEvent );				
			}
			else if( buildMode == DistortionConstants.OVERWRITE )
			{
				container = target;
			}
		}
		
		protected function restore( restoreTarget : Boolean ) : void
		{
			if( buildMode == DistortionConstants.REPLACE )
			{
				if( justAddChild )
				{
					removeContainer( DisplayObject( container ) );
				}
				else
				{
					if( restoreTarget ) replaceTarget( container, DisplayObject( target ) );
				}
			}
			else if( buildMode == DistortionConstants.ADD )
			{
				removeContainer( DisplayObject( container ) );
			}
		}
		
		protected function initDistortImage() : void
		{
			if( distort == null )
			{
				isDistorted = true;
				liveUpdateIntervalCounter = 0;
				initialize();
				getBounds();
				if( buildMode != DistortionConstants.OVERWRITE )
				{
					container.width = offsetRect.width;
					container.height = offsetRect.height;					
				}
				container.x += offsetRect.x;
				container.y += offsetRect.y;
				distort = new DistortImage();
				distort.smooth = smooth;
				distort.container = container;
				distort.target = target;								
				distort.initialize( 2, 2, offsetRect );
				distort.render();				
			}
			else
			{
				liveUpdateIntervalCounter++;
				if( liveUpdate && liveUpdateIntervalCounter >= liveUpdateInterval )
				{
					liveUpdateIntervalCounter = 0;
					distort.initialize( 2, 2, offsetRect );
					distort.render();
				}
			}
		}		
		
		protected function getBounds() : void
		{
			offsetRect = new SimpleDisplayObjectBoundsUtil().getBoundsForOffsetRect( target, offsetRect );
		}
	
		protected function getSimpleBounds() : DisplayObjectBounds
		{
			var corners : DisplayObjectBounds = new DisplayObjectBounds();
			if( concatenatedMatrix == null )
			{
				if( isMatrixInitialized( target ) )
				{
					concatenatedMatrix = target.transform.concatenatedMatrix;
				}
			}
			corners.getActualBounds( target, offsetRect, concatenatedMatrix );		
			return corners;
		}
		
		protected function isMatrixInitialized( target : DisplayObject ) : Boolean
		{
			return ( target.parent != null );
		}	
		
		protected function findParent() : void
		{
			if( targetContainer == null )
			{
				if( target.parent == null )
				{
					throw new Error( "target " + target + " needs to have a valid parent property in buildMode " + buildMode );
				}
				targetContainer = target.parent;
			}
		}
		
		private function replaceTarget( oldTarget : DisplayObject, newTarget : DisplayObject ) : void
		{
			removeContainer( oldTarget );
			targetContainer.addChild( newTarget );
		}
		
		private function addContainer( container : DisplayObject ) : void
		{
			targetContainer.addChild( container );	
		}
		
		private function removeContainer( container : DisplayObject ) : void
		{
			if( targetContainer.contains( container ) ) targetContainer.removeChild( container );
		}
		
		private function catchAddedEvent( event : Event ) : void
		{
			event.stopImmediatePropagation();
		}
		
		private function catchRemovedEvent( event : Event ) : void
		{
			event.stopImmediatePropagation();
		}
		
		private function renderSidesWithBounds( corners : DisplayObjectBounds, 
										leftPercentageDistance : Number, 
										topPercentageDistance : Number, 
										rightPercentageDistance : Number, 
										bottomPercentageDistance : Number ) : void
		{
			var leftDistance : Number = corners.bottomLeft.y - corners.topLeft.y;
			var topDistance : Number = corners.topRight.x - corners.topLeft.x;			
			var rightDistance : Number = corners.bottomRight.y - corners.topRight.y;
			var bottomDistance : Number = corners.bottomRight.x - corners.bottomLeft.x;
			
			var leftDelta : Number = getDelta( getValue( leftPercentageDistance, leftDistance ), leftDistance );
			var topDelta : Number = getDelta( getValue( topPercentageDistance, topDistance ), topDistance );
			var rightDelta : Number = getDelta( getValue( rightPercentageDistance, rightDistance ), rightDistance );		
			var bottomDelta : Number = getDelta( getValue( bottomPercentageDistance, bottomDistance ), bottomDistance );
						
			setTransform( corners.topLeft.x + topDelta, corners.topLeft.y + leftDelta,  
							corners.topRight.x - topDelta, corners.topRight.y + rightDelta, 
							corners.bottomRight.x - bottomDelta, corners.bottomRight.y - rightDelta,  
							corners.bottomLeft.x + bottomDelta, corners.bottomLeft.y - leftDelta );			
		}
		
		private function renderSidesInPixelsWithBounds( corners : DisplayObjectBounds, 
																leftValueDistance : Number, 
																topValueDistance : Number, 
																rightValueDistance : Number, 
																bottomValueDistance : Number ) : void
		{
			var leftDistance : Number = corners.bottomLeft.y - corners.topLeft.y;
			var topDistance : Number = corners.topRight.x - corners.topLeft.x;			
			var rightDistance : Number = corners.bottomRight.y - corners.topRight.y;
			var bottomDistance : Number = corners.bottomRight.x - corners.bottomLeft.x;
			
			var leftDelta : Number = getDelta( leftValueDistance, leftDistance );
			var topDelta : Number = getDelta( topValueDistance, topDistance );			
			var rightDelta : Number = getDelta( rightValueDistance, rightDistance );			
			var bottomDelta : Number = getDelta( bottomValueDistance, bottomDistance );
			
			setTransform( corners.topLeft.x + topDelta, corners.topLeft.y + leftDelta,  
							corners.topRight.x - topDelta, corners.topRight.y + rightDelta, 
							corners.bottomRight.x - bottomDelta, corners.bottomRight.y - rightDelta,  
							corners.bottomLeft.x + bottomDelta, corners.bottomLeft.y - leftDelta );
		}
		
		private function renderCornersWithBounds( corners : DisplayObjectBounds, 
																	topLeft : Point, 
																	topRight : Point, 
																	bottomRight : Point, 
																	bottomLeft : Point ) : void
		{			
			var leftDistance : Number = corners.bottomLeft.y - corners.topLeft.y;
			var topDistance : Number = corners.topRight.x - corners.topLeft.x;			
			var rightDistance : Number = corners.bottomRight.y - corners.topRight.y;
			var bottomDistance : Number = corners.bottomRight.x - corners.bottomLeft.x;
			
			var topLeftX : Number = getValue( topLeft.x, topDistance );			
			var topLeftY : Number = getValue( topLeft.y, leftDistance );			
			var topRightX : Number = getValue( topRight.x, topDistance );
			var topRightY : Number = getValue( topRight.y, rightDistance );		
			var bottomRightX : Number = getValue( bottomRight.x, bottomDistance );
			var bottomRightY : Number = getValue( bottomRight.y, rightDistance );
			var bottomLeftX : Number = getValue( bottomLeft.x, bottomDistance );
			var bottomLeftY : Number = getValue( bottomLeft.y, leftDistance );
			
			setTransform( topDistance - topLeftX, leftDistance - topLeftY,  
							topRightX, rightDistance - topRightY, 
							bottomRightX, bottomRightY, 
							bottomDistance - bottomLeftX, bottomLeftY );
		}		
		
		private function setTransform( topLeftX : Number, topLeftY : Number, 
												topRightX : Number, topRightY : Number, 
												bottomRightX : Number, bottomRightY : Number, 
												bottomLeftX : Number, bottomLeftY : Number ) : void
										
		{
			this.topLeftX = topLeftX;
			this.topLeftY = topLeftY;
			this.topRightX = topRightX;
			this.topRightY = topRightY;
			this.bottomRightX = bottomRightX;
			this.bottomRightY = bottomRightY;
			this.bottomLeftX = bottomLeftX;
			this.bottomLeftY = bottomLeftY;
			
			distort.setTransform( 
							topLeftX, topLeftY,  
							topRightX, topRightY, 
							bottomRightX, bottomRightY, 
							bottomLeftX, bottomLeftY );		
		}								
					
		
		private function getDistortion( distortion : Number ) : Number
		{
			if( isNaN( distortion ) ) distortion = 20;
			return distortion;
		}
		
		private function getDistortedPercentage( percentage : Number, distortion : Number ) : Number
		{
			return 100 - ( percentage / 100 * distortion );
		}
		
		private function getInversedDistortedPercentage( percentage : Number, distortion : Number ) : Number
		{
			return 100 - ( distortion - ( percentage / 100 * distortion ) );
		}
				
		private function getDelta( value : Number, total : Number ) : Number
		{
			var delta : Number = ( total - value ) / 2;
			return delta;
		}
		
		private function getValue( percentage : Number, total : Number ) : Number
		{
			var value : Number = percentage / 100 * total;
			return value;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产尿小便嘘嘘| 国产高清在线精品| 国产日韩精品一区二区三区在线| 成人少妇影院yyyy| 水蜜桃久久夜色精品一区的特点| 久久蜜桃av一区精品变态类天堂| 91国产成人在线| 国产一区二区精品久久91| 一区二区三区不卡视频在线观看 | 欧美一级欧美一级在线播放| 国产成人精品免费| 日韩和欧美一区二区三区| 国产精品美女久久久久久久久| 欧美日韩精品欧美日韩精品| 高清在线观看日韩| 免费成人av资源网| 亚洲日本电影在线| 国产精品网站在线播放| 日韩欧美一卡二卡| 欧美精品免费视频| 在线亚洲精品福利网址导航| 成人免费视频国产在线观看| 久久99精品久久久| 日韩精品视频网| 亚洲激情图片一区| 亚洲日本韩国一区| 国产精品拍天天在线| 2021久久国产精品不只是精品| 欧美日韩国产综合视频在线观看 | 99久久免费精品高清特色大片| 精品无码三级在线观看视频| 爽好多水快深点欧美视频| 一区二区三区免费| 亚洲欧洲制服丝袜| 亚洲免费观看在线观看| 中文字幕在线观看不卡视频| 欧美国产精品中文字幕| 久久久国产午夜精品| 久久久久9999亚洲精品| 2019国产精品| 精品国产3级a| 久久毛片高清国产| 中文字幕av资源一区| 国产精品免费视频观看| 欧美激情综合五月色丁香| 国产欧美精品国产国产专区| 久久精品一区二区三区不卡牛牛| 久久婷婷色综合| 国产午夜久久久久| 国产精品美女www爽爽爽| 中文成人综合网| 一区视频在线播放| 一区二区三区四区乱视频| 亚洲精品菠萝久久久久久久| 一区二区三区精品视频在线| 亚洲午夜精品在线| 免费看欧美女人艹b| 极品少妇xxxx精品少妇| 国产福利91精品一区| 成人免费视频一区二区| 在线免费观看视频一区| 欧美剧情片在线观看| 日韩欧美久久一区| 久久久久久97三级| 亚洲欧美激情插| 人人超碰91尤物精品国产| 国内精品免费**视频| www.成人网.com| 欧美视频一区二区三区| 日韩一区二区精品在线观看| 久久久久国产精品厨房| 亚洲乱码国产乱码精品精98午夜| 一区二区三区精品视频| 激情综合亚洲精品| a亚洲天堂av| 91精品国产综合久久精品麻豆 | 精品福利av导航| 国产精品欧美一区喷水| 亚洲成人精品影院| 国内欧美视频一区二区| 色综合久久综合中文综合网| 欧美日韩国产精选| 久久精品视频网| 亚洲综合区在线| 黑人巨大精品欧美黑白配亚洲| eeuss鲁片一区二区三区在线观看| 欧美日韩综合一区| 久久久精品影视| 亚洲一区二区三区四区在线 | 91毛片在线观看| 日韩午夜激情电影| 中文字幕一区av| 日韩电影在线观看一区| 成人黄色综合网站| 日韩精品综合一本久道在线视频| 中文字幕亚洲视频| 寂寞少妇一区二区三区| 色婷婷香蕉在线一区二区| 国产校园另类小说区| 视频一区在线播放| 91香蕉视频在线| www久久久久| 日本中文在线一区| 色香蕉久久蜜桃| 国产视频一区二区三区在线观看 | 狠狠色综合日日| 在线免费av一区| 国产精品久久久久久妇女6080| 免费看日韩精品| 欧美日韩亚洲丝袜制服| 综合欧美亚洲日本| 国产成人小视频| 日韩午夜三级在线| 亚洲动漫第一页| www.亚洲免费av| 亚洲国产高清不卡| 国产在线精品一区二区不卡了 | 国产午夜精品一区二区| 奇米四色…亚洲| 欧美性色aⅴ视频一区日韩精品| 亚洲国产成人午夜在线一区| 麻豆精品新av中文字幕| 欧美日韩国产一级片| 亚洲精品伦理在线| 不卡的电影网站| 国产喂奶挤奶一区二区三区| 美女爽到高潮91| 日韩一区二区三区四区五区六区| 亚洲在线视频网站| 一本大道久久a久久精二百| 国产精品无人区| 丁香婷婷综合五月| 国产日韩欧美在线一区| 国产精品亚洲午夜一区二区三区| 欧美xxxxx裸体时装秀| 日本午夜精品一区二区三区电影| 欧美午夜精品久久久久久超碰 | 色吧成人激情小说| 亚洲欧美另类小说视频| 日本高清不卡aⅴ免费网站| ...av二区三区久久精品| www.欧美日韩| 亚洲精选视频免费看| 色国产精品一区在线观看| 亚洲精品v日韩精品| 欧美亚洲日本国产| 亚洲成人久久影院| 日韩欧美一区二区久久婷婷| 狠狠色丁香久久婷婷综合_中| 精品福利一区二区三区免费视频| 国产麻豆91精品| 国产喷白浆一区二区三区| 国产成人精品影视| 亚洲婷婷在线视频| 欧美私模裸体表演在线观看| 午夜激情久久久| 欧美成人精品1314www| 国产乱码一区二区三区| 国产精品丝袜91| 日本精品免费观看高清观看| 午夜视频在线观看一区二区| 欧美卡1卡2卡| 国产精品一线二线三线| 国产精品色在线| 欧美日韩小视频| 久草在线在线精品观看| 亚洲国产精品t66y| 欧美日韩一区二区三区不卡 | 韩国理伦片一区二区三区在线播放| 欧美成人精品1314www| 成人黄色综合网站| 亚洲成a人片在线观看中文| 日韩欧美国产一区二区在线播放| 国产一区二区不卡| 中文字幕一区二| 欧美一区二区三区视频在线| 国产成人免费av在线| 亚洲国产sm捆绑调教视频| 精品国产伦一区二区三区观看方式| 高清成人免费视频| 亚洲aⅴ怡春院| 国产午夜一区二区三区| 欧美日韩在线三级| 国产精品66部| 亚洲va欧美va人人爽午夜| 久久久久国色av免费看影院| 在线观看不卡视频| 国产揄拍国内精品对白| 亚洲精品欧美专区| 精品国产99国产精品| 欧美三级电影网站| 成人动漫精品一区二区| 亚洲福中文字幕伊人影院| 国产日韩av一区| 91麻豆精品国产无毒不卡在线观看| 成人综合婷婷国产精品久久 | 91美女片黄在线观看| 国内精品写真在线观看| 午夜电影一区二区| 亚洲欧美在线高清|