快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号