as3.0中控制mc的速度缓慢跟随鼠标
现有一个mc,大概2000*1000.现在舞台属性大小是800*500.希望可以做一个mc跟随鼠标的动作。好让画面看起来在随鼠标移动。但又不是完全mc的X轴=mouseX...
现有一个mc,大概2000*1000.
现在舞台属性大小是800*500.
希望可以做一个mc跟随鼠标的动作。好让画面看起来在随鼠标移动。
但又不是完全mc的X轴=mouseX,而是当鼠标移到那,mc再缓慢的移动到那,需要改变一个速度。如何做?
我原来的代码是:
mc_cj.addEventListener(Event.ENTER_FRAME,FunctionName);
function FunctionName(event:Event=null):void{
event.target.x=mouseX;
event.target.y=mouseY;
}
但这样flash打开后鼠标就离不开mc的画面进行其他的操作了。
谢谢,请教了~解决问题一定再加分 展开
现在舞台属性大小是800*500.
希望可以做一个mc跟随鼠标的动作。好让画面看起来在随鼠标移动。
但又不是完全mc的X轴=mouseX,而是当鼠标移到那,mc再缓慢的移动到那,需要改变一个速度。如何做?
我原来的代码是:
mc_cj.addEventListener(Event.ENTER_FRAME,FunctionName);
function FunctionName(event:Event=null):void{
event.target.x=mouseX;
event.target.y=mouseY;
}
但这样flash打开后鼠标就离不开mc的画面进行其他的操作了。
谢谢,请教了~解决问题一定再加分 展开
1个回答
展开全部
event.target.x=mouseX;
event.target.y=mouseY;
修改为
event.target.x-=(event.target.x-mouseX)/10;
event.target.y-=(event.target.y-mouseY)/10;
event.target.y=mouseY;
修改为
event.target.x-=(event.target.x-mouseX)/10;
event.target.y-=(event.target.y-mouseY)/10;
更多追问追答
追问
谢谢,很有效果,把值改到了30正好。
但刚才有一点我弄错了,应该是mc的X坐标=-mouseX,反方向移动
那应该在哪里改呢?由于初学,刚才自己一下,发现ctrl+enter后,mc直接飞到别的地方去了~
1、有没有能让mc在刚打开的时候先不动,然后当鼠标的XY移动后或是到舞台边缘时,mc再执行操作
2、之前想在画面上加动态文本,显示鼠标在画面上移动的坐标值,可是2.0的_root不能用
实在感谢你,答完给你加到100,解决了我很大的问题~
追答
反向的话这样
event.target.x-=(event.target.x-(stage.stageWidth-stage.mouseX))/30;
event.target.y-=(event.target.y-(stage.stageHeight-stage.mouseY))/30;
1 因为这个按比例反向缓冲的 所以没必要判断鼠标是不是再边缘。
不过你若需要 一个开关 开控制是否移动
你可以加一个If
例如
定义一个 布尔值,var moveEff:Boolean=true
if(moveEff){
//当moveEff为TRUE的时候 才使用缓动
event.target.x-=(event.target.x-(stage.stageWidth-stage.mouseX))/30;
event.target.y-=(event.target.y-(stage.stageHeight-stage.mouseY))/30;
}
2 引用顶层 你可以在你的影片剪辑里这样
var lujin:Object=this.root
trace(lujin)
//这样就可以引用到顶层了 例如主时间轴上有一个 aa=0 你在剪辑里调用 直接lujin.aa即可
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询