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

📄 newiriseffect.as

📁 《Flex第一步:基于ActionScript 3.0的Flex 2应用开发》采用概念讲解与实例结合的方式
💻 AS
字号:
package tree
{
	import mx.effects.MaskEffect
	import mx.effects.EffectInstance
		
	import mx.controls.SWFLoader;
	
	import flash.display.Shape;
	import mx.core.FlexShape;
	import flash.display.Graphics;
	import flash.geom.Rectangle;
	
	public class NewIrisEffect extends MaskEffect	{
		
		public var position:String;
		
		function NewIrisEffect(target:Object = null){
			super(target);

			instanceClass = NewIrisInstance;
			
			this.createMaskFunction = createLargeMask;
		}
		//从
		public function createLargeMask(targ:Object, bounds:Rectangle):Shape{

			// By default, create a mask that is the shape of the target.		
			var targetWidth:Number = bounds.width / Math.abs(targ.scaleX);
			var targetHeight:Number = bounds.height / Math.abs(targ.scaleY);
		
			if (targ is SWFLoader)	{
				// Make sure the loader's content has been sized
				targ.validateDisplayList(); 
				if (targ.content)
				{
					targetWidth = targ.contentWidth;
					targetHeight = targ.contentHeight;
				}
			}
		
			var newMask:Shape = new FlexShape();
			var g:Graphics = newMask.graphics;
			g.beginFill(0xFFFF00);
			//绘制椭圆
			g.drawEllipse(0,0,targetWidth,targetHeight);
			//g.drawRect(0, 0, targetWidth, targetHeight);
			g.endFill();
			if (target.rotation == 0)
			{
				newMask.width = targetWidth;
				newMask.height = targetHeight;
			}
			else
			{
				var angle:Number = targ.rotation * Math.PI / 180;
			
				var sin:Number = Math.sin(angle);
				var cos:Number = Math.cos(angle);
			
				newMask.width =  Math.abs(targetWidth * cos - targetHeight * sin);
				newMask.height = Math.abs(targetWidth * sin + targetHeight * cos);
			}
		
			return newMask;
		}		
		
		override protected function initInstance(instance:EffectInstance):void	{
			super.initInstance(instance);

			var maskEffectInstance:NewIrisInstance = NewIrisInstance(instance);		

			maskEffectInstance.showTarget = showTarget;
			maskEffectInstance.xFrom = xFrom;
			maskEffectInstance.yFrom = yFrom;
			maskEffectInstance.xTo = xTo;
			maskEffectInstance.yTo = yTo;
			maskEffectInstance.scaleXFrom = scaleXFrom;
			maskEffectInstance.scaleXTo = scaleXTo;
			maskEffectInstance.scaleYFrom = scaleYFrom;
			maskEffectInstance.scaleYTo = scaleYTo;
			
			maskEffectInstance.position = position
		}
	}
}

⌨️ 快捷键说明

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