ActionScript 实现放大图片功能

package 
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.Event;

	public class Main extends Sprite
	{

		public function Main()
		{
			initPic();
		}
		//3行4列
		var i_max:Number = 3;
		var j_max:Number = 4;
		//初始化图片
		private function initPic():void
		{
			//显示存在原件中的12个图片
			for (var i:Number=0; i<i_max; i++)
			{
				for (var j:Number=0; j<j_max; j++)
				{
					var mc:Mc=new Mc();
					mc.x = j * stage.stageWidth / j_max;
					mc.y = i * stage.stageHeight / i_max;
					mc.width = stage.stageWidth / j_max;
					mc.height = stage.stageHeight / i_max;
					mc["sx"] = mc.x;//小图时的x轴坐标
					mc["sy"] = mc.y;//小图时的y轴坐标
					mc["sw"] = mc.width;//小图片的宽
					mc["sh"] = mc.height;//小图片的高
					mc["isSmall"] = true;//存放图图片是否是小图
					mc.gotoAndStop(i*j_max+j+1);
					mc.addEventListener(MouseEvent.CLICK, mouseClickHandler);
					stage.addChild(mc);
				}
			}
		}
		//单击图片
		private function mouseClickHandler(event:MouseEvent):void
		{
			var mc:Mc = event.target as Mc;
			//将被单击图片至于最上
			stage.setChildIndex(mc,stage.numChildren-1);
			//单击图片,如果图片是小图就放大,如果已经放大了就还原;
			if (mc["isSmall"])
			{
				mc.addEventListener(Event.ENTER_FRAME, zoomInPic);
				mc.removeEventListener(Event.ENTER_FRAME,zoomOutPic);
			}
			else
			{
				mc.addEventListener(Event.ENTER_FRAME, zoomOutPic);
				mc.removeEventListener(Event.ENTER_FRAME,zoomInPic);
			}
			mc["isSmall"] = ! mc["isSmall"];
		}
		//放大图片
		private function zoomInPic(event:Event):void
		{
			//将图片改为x=0,y=0,width=stage.stageWidth,height=stage.stageHeight
			var mc:Mc = event.target as Mc;
			mc.x +=  (0 - mc.x) / 5;
			mc.y +=  (0 - mc.y) / 5;
			mc.width+=(stage.stageWidth-mc.width)/5;
			mc.height+=(stage.stageHeight-mc.height)/5;
		}
		//缩小图片
		private function zoomOutPic(event:Event):void
		{
			//将图片还原
			var mc:Mc = event.target as Mc;
			mc.x +=  (mc["sx"] - mc.x) / 5;
			mc.y +=  (mc["sy"] - mc.y) / 5;
			mc.width+=(mc["sw"]-mc.width)/5;
			mc.height+=(mc["sh"]-mc.height)/5;
		}
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值