天天看點

ActionScript 緩動類變換加載的本地圖檔

package 
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.net.URLRequest;
	import flash.display.Loader;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import fl.transitions.Tween;
	import fl.motion.easing.Bounce;

	public class Main extends Sprite
	{
		var init_x:Number = 200;
		var init_y:Number = 200;
		public function Main()
		{
			var url = "Images/l3.png";//圖檔url
			/* 以下代碼的流程:
			1. 執行個體化元件
			2. 将元件添加到舞台
			3. 為元件添加本地圖檔*/
			var mc:MovieClip = loadPic(url);
			mc.x = init_x;
			mc.y = init_y;
			mc.addEventListener(MouseEvent.CLICK, mouseClickHandler);
			mc.mouseChildren = false;//表示其子元素不接收滑鼠消息。;
			stage.addChild(mc);
		}
		//單擊圖檔,利用緩動類實作圖檔變換效果
		private function mouseClickHandler(event:MouseEvent):void
		{
			var mc:MovieClip = event.target as MovieClip;
			/*緩動的對象,對象的屬性,
			alpha初始值為o.5,結束值為1,用時1s
			scaleX初始值為o.5,結束值為1,用時1s
			scaleY初始值為o.5,結束值為1,用時1s
			rotation初始值為0度,結束值為360度,用時1s
			緩動次數為3 */
			var talpha:Tween = new Tween(mc,"alpha",Bounce.easeOut,0.5,1,1,true);
			var tscx:Tween = new Tween(mc,"scaleX",Bounce.easeOut,0.5,1,1,true);
			var tscy:Tween = new Tween(mc,"scaleY",Bounce.easeOut,0.5,1,1,true);
			var trotation:Tween = new Tween(mc,"rotation",Bounce.easeOut,0,360,1,true);
		}
		//根據本地路徑加載圖檔
		private function loadPic(url:String):MovieClip
		{
			var mc:MovieClip=new MovieClip();
			var urlRequest:URLRequest = new URLRequest(url);
			var loader:Loader=new Loader();
			loader.load(urlRequest);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadPicCompleteHandler);
			//加載圖檔結束後将圖檔添加到元件;
			function loadPicCompleteHandler(event:Event)
			{
				var pic:Loader = event.target.loader as Loader;
				mc.addChild(pic);
				loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadPicCompleteHandler);
			}
			return mc;
		}
	}
}