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

📄 loadimgs.as

📁 基于AS3的图片展示 图片缩放不模糊 导入外部XML数据
💻 AS
字号:
package thisclass{
	import flash.display.Bitmap
	import flash.display.BitmapData
	import flash.display.StageQuality;
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.net.URLRequest;

	import fl.transitions.*;
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;

	import flash.events.Event;
	import flash.events.MouseEvent;

	import view;
	import thisclass.loadimg;
	public class loadimgs extends Sprite {

		private var thisloadimg:loadimg;
		//记录按钮与小图之间的距离
		public var spaceNum:uint = 10
		private var tween:Tween;
		//用于放置所有小图片的容器
		private var imgscontain:Sprite = new Sprite();
		private var imgnum:uint=0;
		//记录各图片的初始缩放数据
		private var imgscaleX_array:Array=new Array();
		private var imgscaleY_array:Array=new Array();
		//记录显示图片的长度
		private var showimgWidth:uint;
		//记录显示图片的高度
		private var showimgHeight:uint;
		//图片左边的按钮
		private var toleftmc:MovieClip;
		//图片右边的按钮
		private var torightmc:MovieClip;
		//记录图片数量
		private var allimgsnum:uint;
		//记录已导入的图片数
		private var loadednum:uint=0;
		private var imgurl:Array = new Array();
		public function loadimgs(array:Array,mask_width:uint,mask_height:uint,leftmc:MovieClip=null,rightmc:MovieClip=null,Num:uint=10) {
			imgurl = array
			showimgWidth = mask_width;
			showimgHeight = mask_height;
			allimgsnum = array.length;
			toleftmc = leftmc;
			torightmc = rightmc;
			//设置遮罩
			var imgsMask:Sprite = new Sprite();
			imgsMask.graphics.beginFill(0xffffff);
			imgsMask.graphics.drawRect(0,0,mask_width,mask_height+1);
			imgsMask.graphics.endFill();
			imgscontain.mask = imgsMask;
			addChild(imgsMask);
			addChild(imgscontain);

			//添加左右按钮
			if (toleftmc!=null && torightmc!=null) {
				imgscontain.x = toleftmc.width+spaceNum;
				imgsMask.x = imgscontain.x;
				toleftmc.x = 0;
				toleftmc.y = (showimgHeight-toleftmc.height)/2;
				torightmc.x = showimgWidth+imgscontain.x+spaceNum;
				torightmc.y =(showimgHeight-torightmc.height)/2;
				toleftmc.addEventListener(MouseEvent.ROLL_OVER,toleft_rollover);
				toleftmc.addEventListener(MouseEvent.ROLL_OUT,toleft_rollout);
				torightmc.addEventListener(MouseEvent.ROLL_OVER,toright_rollover);
				torightmc.addEventListener(MouseEvent.ROLL_OUT,toright_rollout);

				addChild(toleftmc);
				addChild(torightmc);
			}
			for (var i:uint=0; i<array.length; i++) {
				var imgkuan:Sprite = new Sprite();
				imgkuan.graphics.beginFill(0xcccccc,0.3);
				imgkuan.graphics.lineStyle(1,0xcccccc)
				imgkuan.graphics.drawRect(0,0,mask_height,mask_height);
				imgkuan.graphics.endFill();
				
				imgkuan.x=i*(mask_height+10)
				
				var urlrequest:URLRequest = new URLRequest(array[i]);
				var loader:Loader = new Loader();
				loader.name=String("loader"+i);
				loader.load(urlrequest);
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loader_comp);

				imgkuan.addChild(loader);
				imgscontain.addChild(imgkuan);
			}
		}
		private function loader_comp(event:Event):void {
			var scalexy:Number=0
			if (event.currentTarget.loader.width>event.currentTarget.loader.height) {
				scalexy = showimgHeight/event.currentTarget.loader.width-0.005;
				event.currentTarget.loader.scaleX = scalexy
				event.currentTarget.loader.scaleY = scalexy
			} else {
				scalexy = showimgHeight/event.currentTarget.loader.height-0.005
				event.currentTarget.loader.scaleX = scalexy
				event.currentTarget.loader.scaleY = scalexy
			}
			event.currentTarget.loader.x=(event.currentTarget.loader.parent.width-event.currentTarget.loader.width)/2-0.005;
			event.currentTarget.loader.y=(event.currentTarget.loader.parent.height-event.currentTarget.loader.height)/2-0.005;
			
			var bitmap:Bitmap = Bitmap(event.currentTarget.loader.content)
			bitmap.scaleX = scalexy
			bitmap.scaleY = scalexy
			bitmap.x=event.currentTarget.loader.x
			bitmap.y=event.currentTarget.loader.y
			bitmap.smoothing = true
			event.currentTarget.loader.parent.addChild(bitmap)
			
			var click_mc = new createMC(bitmap.width,bitmap.height);
			click_mc.alpha = 0
			click_mc.x = bitmap.x
			click_mc.y = bitmap.y
			click_mc.name = event.currentTarget.loader.name
			click_mc.addEventListener(MouseEvent.MOUSE_DOWN,img_mousedown)
			event.currentTarget.loader.parent.addChild(click_mc)
			
		}
		private function img_mousedown(event:MouseEvent):void {
			view.currentshowimgNum = Number(event.currentTarget.name.slice(6));
			var thisloadimg = new loadimg(imgurl[view.currentshowimgNum]);
			view.loadimg_mc.addChild(thisloadimg);
			if (view.loadimg_mc.getChildIndex(thisloadimg)==1) {
				view.loadimg_mc.removeChildAt(0);
			}
		}
		private function loader_mouse_over(event:MouseEvent):void {
			//tween.addEventListener(TweenEvent.MOTION_CHANGE,tween_change);
		}
		private function loader_mouse_out(event:MouseEvent):void {
			//tween.addEventListener(TweenEvent.MOTION_CHANGE,tween_change);
		}
		private function tween_change(event:TweenEvent):void {
			for (var i:int = 1; i<imgscontain.numChildren; i++) {
				imgscontain.getChildAt(i).x=imgscontain.getChildAt((i-1)).x+imgscontain.getChildAt((i-1)).width+spaceNum;
			}
		}
		private function toleft_rollover(event:MouseEvent):void {
			event.target.addEventListener(Event.ENTER_FRAME,imgs_to_left);
		}
		private function toleft_rollout(event:MouseEvent):void {
			event.target.removeEventListener(Event.ENTER_FRAME,imgs_to_left);
		}
		private function toright_rollover(event:MouseEvent):void {
			event.target.addEventListener(Event.ENTER_FRAME,imgs_to_right);
		}
		private function toright_rollout(event:MouseEvent):void {
			event.target.removeEventListener(Event.ENTER_FRAME,imgs_to_right);
		}
		private function imgs_to_left(event:Event):void {
			if (imgscontain.x<toleftmc.width+spaceNum) {
				imgscontain.x+=30
			}else{
				imgscontain.x = toleftmc.width+spaceNum
			}
		}
		private function imgs_to_right(event:Event):void {
			if (imgscontain.x>showimgWidth-imgscontain.width+toleftmc.width+spaceNum) {
				imgscontain.x-=30
			}else{
				imgscontain.x = showimgWidth-imgscontain.width+toleftmc.width+spaceNum
			}
		}
	}
}

⌨️ 快捷键说明

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