flash 怎样制作可以用鼠标拖动旋转的转盘
我想做一个可以用鼠标击拖动,围绕中心点任意旋转的转盘现在自己弄出来了一个,但是有问题,就是好像鼠标可以拖动的点总是固定的总是固定到紫色我点击黄色拖动,会自动跳到紫色;别的...
我想做一个可以用鼠标击拖动,围绕中心点任意旋转的转盘 现在自己弄出来了一个,但是有问题,就是 好像鼠标可以拖动的点总是固定的 总是固定到紫色 我点击黄色拖动,会自动跳到紫色;别的颜色也一样 代码在下面 求各位大神 帮忙看看 到底应该怎么改。。。。最好给出完整的没有问题的代码。。。感激不尽
circle_mc.buttonMode=true;circle_mc.rotation=0var dx:Number;var dy:Number;var angle:Number;
circle_mc.addEventListener(MouseEvent.MOUSE_DOWN,cirDown);
function cirDown(e) { circle_mc.addEventListener(MouseEvent.MOUSE_MOVE,cirMove); stage.addEventListener(MouseEvent.MOUSE_UP,upHandler);}
function cirMove(e) { dx=mouseX-circle_mc.x; dy=mouseY-circle_mc.y; angle=180*Math.atan2(dy,dx)/Math.PI; circle_mc.rotation=angle ;}
function upHandler(e) { circle_mc.removeEventListener(MouseEvent.MOUSE_MOVE,cirMove);} 展开
circle_mc.buttonMode=true;circle_mc.rotation=0var dx:Number;var dy:Number;var angle:Number;
circle_mc.addEventListener(MouseEvent.MOUSE_DOWN,cirDown);
function cirDown(e) { circle_mc.addEventListener(MouseEvent.MOUSE_MOVE,cirMove); stage.addEventListener(MouseEvent.MOUSE_UP,upHandler);}
function cirMove(e) { dx=mouseX-circle_mc.x; dy=mouseY-circle_mc.y; angle=180*Math.atan2(dy,dx)/Math.PI; circle_mc.rotation=angle ;}
function upHandler(e) { circle_mc.removeEventListener(MouseEvent.MOUSE_MOVE,cirMove);} 展开
展开全部
你需要一个隐形的参照点,用它来计算圆形的下一步的角度增量,然后再把新的角度赋予圆形。
import flash.display.Shape;
var sp:Shape = new Shape();
sp.x = circle_mc.x;
sp.y = circle_mc.y;
var spRot:Number;
var circle_mcRot:Number;
circle_mc.addEventListener(MouseEvent.MOUSE_DOWN,onSelected);
function onSelected(e:MouseEvent)
{
circle_mcRot = circle_mc.rotation;
onMove(null);
spRot = sp.rotation;
circle_mc.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
stage.addEventListener(MouseEvent.MOUSE_UP,onStop);
}
function onMove(e:MouseEvent)
{
var a:Number = mouseX - sp.x;
var b:Number = mouseY - sp.y;
if(a > 0)
{
sp.rotation = Math.atan(b/a) * 180 / Math.PI;
}
else if(a < 0)
{
sp.rotation = Math.atan(b/a) * 180 / Math.PI + 180;
}
if(e)
{
circle_mc.rotation = circle_mcRot + sp.rotation - spRot;
e.updateAfterEvent();
}
}
function onStop(e:MouseEvent)
{
circle_mc.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
stage.addEventListener(MouseEvent.MOUSE_UP,onStop);
}
一诺动画
2024-10-27 广告
2024-10-27 广告
Flash动画制作在北京一之诺文化传媒有限公司是一项创意与技术并重的服务。我们团队精通于利用Flash或兼容技术,将客户的想象转化为生动、流畅的动画作品。从概念设计到分镜脚本,再到精细的绘制与后期特效处理,每一步都力求完美呈现。无论是广告动...
点击进入详情页
本回答由一诺动画提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询