flash as3 我想要做上下用鼠标拖动图片,同时把图片限定在某一个范围内。(不是跟随鼠标) 10

我做出了自由拖动效果但是不知道怎么限制范围让它在一个固定的矩形内拖动求大声解答... 我做出了自由拖动效果 但是不知道怎么限制范围让它在一个固定的矩形内拖动 求大声解答 展开
 我来答
百度网友9163ed679
2014-11-21 · TA获得超过109个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:204万
展开全部

这里最好侦听ENTER_FRAME时间来自己写拖动,使用startDrag();不好控制

元件内容内容如图:

flash共一帧,输入如下代码:

import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;

var dis:Point = new Point();
var rectangle:Rectangle = new Rectangle(mc.x + 1, mc.y + 1, mc.width - 1, mc.height - 1);
rect.addEventListener(MouseEvent.MOUSE_DOWN, mousedownHandler);

function mousedownHandler(evt:MouseEvent):void{
dis.x = mouseX - rect.x;
dis.y = mouseY - rect.y;

rect.removeEventListener(MouseEvent.MOUSE_DOWN, mousedownHandler);
rect.addEventListener(MouseEvent.MOUSE_OUT, outHandler);
rect.addEventListener(MouseEvent.MOUSE_UP, outHandler);
rect.addEventListener(Event.ENTER_FRAME, enterframeHandler);
}
function outHandler(evt:MouseEvent):void{
rect.addEventListener(MouseEvent.MOUSE_DOWN, mousedownHandler);
rect.removeEventListener(MouseEvent.MOUSE_OUT, outHandler);
rect.removeEventListener(MouseEvent.MOUSE_UP, outHandler);
rect.removeEventListener(Event.ENTER_FRAME, enterframeHandler);
}
function enterframeHandler(evt:Event):void{
rect.x = mouseX - dis.x;
rect.y = mouseY - dis.y;

if(rect.x < rectangle.x){
rect.x = rectangle.x;
}
if(rect.y < rectangle.y){
rect.y = rectangle.y;
}
if(rect.x + rect.width > rectangle.x + rectangle.width){
rect.x = rectangle.x + rectangle.width - rect.width;
}
if(rect.y + rect.height > rectangle.y + rectangle.height){
rect.y = rectangle.y + rectangle.height - rect.height;
}
}

 

追问

我是这样的图片 想要的效果是让这一长条图片上下拖动

左右不超过边框

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式