求FLASH AS3.0的,用鼠标拖动线段绕中心点旋转。详细的解说或教程都可以。

 我来答
睢鸠问寒R0
2012-12-12 · 超过12用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:25.9万
展开全部
你把题在描述的详细些,是不是鼠标按下后想起他方向拖出一根线,这根线可以绕按下的点转
追问

我做的这个钟表,我让能让鼠标可以拖动其中的指针,围绕轴心旋转

追答
//你的一个指针肯定是一个影片剪辑吧。将下面的代码插入这个影片剪辑中就行了
this.addEventListener("mouseDown",down);
function down(me:Event){
stage.addEventListener(Event.ENTER_FRAME,moveEye);
}
function up(me:Event){
stage.removeEventListener(Event.ENTER_FRAME,moveEye);
this.removeEventListener("mouseUp",up);
}
function moveEye(me:Event){
var dx=stage.mouseX-this.x;
var dy=stage.mouseY-this.y;
var rad=Math.atan2(dy,dx);
var deg=180 * rad / Math.PI;
this.rotation=deg;//旋转角度
this.addEventListener("mouseUp",up);
}
//指针选择的点一定要在影片剪辑的(0,0)点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Keensb
2012-12-12 · TA获得超过787个赞
知道小有建树答主
回答量:952
采纳率:0%
帮助的人:737万
展开全部
线段的长度是否随鼠标的位置改变?
更多追问追答
追问
这个不需要,主要是能绕点旋转
追答
直接写在帧上的:

import flash.display.Shape;
var sp:Shape = new Shape();
sp.graphics.lineStyle(3,0xff0000,1);
sp.graphics.moveTo(0,0);
sp.graphics.lineTo(150,0);
addChild(sp);
sp.x = 300;
sp.y = 200;
stage.addEventListener(MouseEvent.MOUSE_DOWN,onSelected);
function onSelected(e:MouseEvent)
{
onMove(null);
stage.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)
e.updateAfterEvent()
}
function onStop(e:MouseEvent)
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
stage.addEventListener(MouseEvent.MOUSE_UP,onStop);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式