as3限制鼠标跟随元件移动范围和速度

_(:3我想做一个背景跟随鼠标反方向运动的一个效果(类似于跟随鼠标浏览图片一样)但是我只能写到限制速度,每次鼠标移动到屏幕角落等背景反方向移动完舞台就会露出空白的一部分。... _(:3 我想做一个背景跟随鼠标反方向运动的一个效果(类似于跟随鼠标浏览图片一样)

但是我只能写到限制速度,每次鼠标移动到屏幕角落等背景反方向移动完舞台就会露出空白的一部分。
要怎样设置元件跟随鼠标移动后到达一个界限后不再移动(比如鼠标左上角,图片往右下角移动,当图片的左上角到达舞台的左上角后就不再移动)

我的元件是mc

addEventListener(Event.ENTER_FRAME ,frame);
Mouse.hide();
function frame(e) {
mc.x-=(mc.x-(stage.stageWidth-stage.mouseX))/3000
mc.y-=(mc.y-(stage.stageHeight-stage.mouseY))/3000
}

舞台大小是760px宽300高
图片大小是940px宽383高
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
山水阿锐
2015-07-13 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
import flash.geom.Rectangle;
var rect:Rectangle = new Rectangle(0,0,Stage.width,Stage.height);

var dragx:Number;
var dragy:Number;

mc.onMouseDown = function(){
dragx = _root._xmouse-this._x;
dragy = _root._ymouse-this._y;

_root.onMouseMove = mouseMoveFun;
_root.onMouseUp = mouseUpFun;
}

function mouseMoveFun(){
mc._x = _root._xmouse-dragx;
mc._y = _root._ymouse-dragy;

if(mc._x<rect.x){
mc._x = rect.x;
}else if(mc._x+mc._width>rect.width){
mc._x = rect.width-mc._width;
}

if(mc._y<rect.y){
mc._y = rect.y;
}else if(mc._y+mc._height>rect.height){
mc._y = rect.height-mc._height;
}

e.updateAfterEvent();
}

function mouseUpFun(){
delete _root.onMouseMove;
delete _root.onMouseUp;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式