Flash类的运用:可放大、缩小、旋转的鼠标操作类
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
刚做了一个应用,要用到鼠标操作元件,放大、缩小、旋转、移动。花了一些时间,终于实现了,代码整理了一下,和大家分享一下。 源代码下载地址:http://www.mygamemylove.com/bbs/viewthread.PHP?tid=48 希望大家提出意见。修改。废话少说,先看效果: 操作类: packagecom.mygamemylove{ importFlash.display.DisplayObject; importflash.display.Graphics; importflash.display.Sprite; importflash.events.Event; importflash.events.MouseEvent; importflash.geom.Point; importflash.geom.Rectangle; publicclassopObject{ privatevarspOp:Sprite; privatevarcurrentOp:Sprite; privatevararrPoint:Array; // privatevarisDrogOp:Boolean; privatevarisDrog:Boolean; privatevarpointType:uint; privatevarspPoint:Sprite; // privatevarsizeType:Number; privatevarminW:Number; privatevarminH:Number; privatevardrawC:uint; privatevarspParent:Sprite; //旋转 privatevarisR:Boolean publicvarnowRotation:Number; publicvarpCent:Point; publicvarspRotationPoint:Sprite; publicvarspCenterPoint:Sprite; publicvarnumOpPointWH:uint; /** *操作一个对象,可以放大缩小,旋转。 * *原创flash代码,尽在自娱自乐www.MyGameMyLove.com *smallerbirdsmallerbird@gmail.com2009-9-12 * * *@spParent:Sprite操作对象的父对象 *@currentOp:Sprite其中操作的一个对象 *@sizeType:Number调整尺寸的显示模式。 *@minW:Number缩小最小尺寸宽 *@minH:Number缩小最小尺寸高 *@drawC:Number操作柄的色 *@numOpPointWH:Number操作柄的宽高 **/ publicfunctionopObject(spParent:Sprite,currentOp:Sprite,sizeType:Number=1, minW:Number=10,minH:Number=10,drawC:Number=0xff0000,numOpPointWH:uint=10){ this.numOpPointWH=numOpPointWH; this.currentOp=currentOp this.spParent=spParent; this.spParent.mouseEnabled=false; this.sizeType=sizeType; this.minW=minW; this.minH=minH; isDrogOp=false; isDrog=false; pointType=0; arrPoint=newArray(); nowRotation=0; isR=true } 源代码下载地址:http://www.mygamemylove.com/bbs/viewthread.php?tid=48 //改变注册点 publicstaticfunctionRegPoint($obj:Sprite,$point:Point):void{ vartmp_point:Point=$obj.parent.globalToLocal($obj.localToGlobal($point)); varlen:int=$obj.numChildren; while(len--){ vartmp_obj:DisplayObject=$obj.getChildAt(len); tmp_obj.x-=$point.x; tmp_obj.y-=$point.y; } $obj.x=tmp_point.x; $obj.y=tmp_point.y; } privatefunctiondrawR(g:Graphics,c:uint,x:Number,y:Number,w:Number,h:Number):void{ g.beginFill(c,0.5); g.drawRoundRect(x,y,w,h,5); g.endFill(); } privatefunctiondrawOpPont(sp:Sprite,x:Number,y:Number,c:uint,w:Number,h:Number):void{ varspTem:Sprite=newSprite(); spTem.x=x; spTem.y=y; drawR(spTem.graphics,c,-w/2,-h/2,w,h); sp.addChild(spTem); arrPoint.push(spTem); } // privatefunctionclrPointSize():void{ if(arrPoint.length!=0){ for(vari:uint=0;i<arrPoint.length;i++){ arrPoint[i].removeEventListener(MouseEvent.MOUSE_DOWN,fun_point_down); arrPoint[i].removeEventListener(MouseEvent.MOUSE_UP,fun_point_up); spParent.removeChild(arrPoint[i]); } arrPoint=newArray(); } spParent.graphics.clear(); } // privatefunctionclrPoint():void{ clrPointSize(); if(spCenterPoint!=nu |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash类的运用:可放大、缩小、旋转的鼠标操作类的所有评论