⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zoomer.as

📁 QS我也没用过
💻 AS
字号:


package qs.controls
{
	import flash.geom.Matrix;
	
	public class Zoomer extends Wrapper
	{
		private var _maintainAspectRatio:Boolean = true;
		public function set maintainAspectRatio(value:Boolean):void
		{
			if(_maintainAspectRatio != value)
			{
				_maintainAspectRatio = value;
				invalidateDisplayList();
			}
		}
		public function get maintainAspectRatio():Boolean
		{
			return _maintainAspectRatio;
		}

		public function Zoomer()
		{
		}

		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
		{
			if(child == null)
				return;
				
			if(_maintainAspectRatio)
			{
				child.setActualSize(child.getExplicitOrMeasuredWidth(),child.getExplicitOrMeasuredHeight());
				var m:Matrix = child.transform.matrix;
				var scale:Number= Math.min(unscaledWidth/child.getExplicitOrMeasuredWidth(),unscaledHeight/child.getExplicitOrMeasuredHeight());
				m.a = scale;
				m.d = scale;
				child.transform.matrix = m;
				child.move( unscaledWidth/2 - child.getExplicitOrMeasuredWidth()*scale/2,
							unscaledHeight/2 - child.getExplicitOrMeasuredHeight()*scale/2);
			}
			else
			{
				child.setActualSize(child.getExplicitOrMeasuredWidth(),child.getExplicitOrMeasuredHeight());
				var m:Matrix = child.transform.matrix;
				m.a = unscaledWidth/child.getExplicitOrMeasuredWidth();
				m.d = unscaledHeight/child.getExplicitOrMeasuredHeight();
				child.transform.matrix = m;
				child.move(0,0);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -