ActionScript 实现放大图片功能

来源:互联网 发布:matlab处理大量数据 编辑:程序博客网 时间:2024/04/30 06:19
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.stageHeightvar 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