Flash AS3如何在拖动对象的时候,限制他的拖动方向,既限定,水平拖动,或者限定垂直拖动?
还有怎样限制他的拖动范围,就是当把对象向右拖动时,原先左边的东西全部显示之后,那么就不能往左拖了。我该怎么做?谢谢。...
还有怎样限制他的拖动范围,就是当把对象向右拖动时,原先左边的东西全部显示之后,那么就不能往左拖了。
我该怎么做?
谢谢。 展开
我该怎么做?
谢谢。 展开
2个回答
展开全部
在flash as3.0里面 有startDrag 函数
mc.startDrag(false, new Rectangle(0, 0, 100, 0) );
这样mc这个元件只能在x轴方向拖动 拖动范围是 0-100
mc.startDrag(false, new Rectangle(10, 20, 100, 200) );
这样mc是可以在x方向10-100 y轴方向20-200 这样一个矩形区域拖动
希望对你有帮助
user1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1)
function mouseDown1(event:MouseEvent):void
{
user1.startDrag(false, new Rectangle(0, 0, 100, 0) );
}
mc.startDrag(false, new Rectangle(0, 0, 100, 0) );
这样mc这个元件只能在x轴方向拖动 拖动范围是 0-100
mc.startDrag(false, new Rectangle(10, 20, 100, 200) );
这样mc是可以在x方向10-100 y轴方向20-200 这样一个矩形区域拖动
希望对你有帮助
user1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1)
function mouseDown1(event:MouseEvent):void
{
user1.startDrag(false, new Rectangle(0, 0, 100, 0) );
}
展开全部
首先,把要拖动的对象 取个实例名:我这里用 mc1 好了 (mc1在舞台上)
一、mc1 水平拖动
在主时间轴第一帧上写上:
this.addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
mc1.x=mouseX
}
二、mc1垂直拖动
this.addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
mc1.y=mouseY
}
呵呵,只是把x改成y;
你可以在里面加上些条件,来实现拖动范围的的限制,例如:
this.addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
if(mc1.x<250){//当mc1的的坐标小于250时才水平拖动,你可以换成其它的条件
mc1.x=mouseX
}
}
呵呵,大致上的思路是这样的,还有什么不明白的地方,欢迎追问
一、mc1 水平拖动
在主时间轴第一帧上写上:
this.addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
mc1.x=mouseX
}
二、mc1垂直拖动
this.addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
mc1.y=mouseY
}
呵呵,只是把x改成y;
你可以在里面加上些条件,来实现拖动范围的的限制,例如:
this.addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
if(mc1.x<250){//当mc1的的坐标小于250时才水平拖动,你可以换成其它的条件
mc1.x=mouseX
}
}
呵呵,大致上的思路是这样的,还有什么不明白的地方,欢迎追问
更多追问追答
追问
你好,我的代码是这样的。
我希望我在点击USER1的时候开始水平拖拽,松开时停止,然后对它可拖的范围限制
user1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1)
function mouseDown1(event:MouseEvent):void
{
user1.startDrag();
}
user1.addEventListener(MouseEvent.MOUSE_UP, mouseReleased1);
function mouseReleased1(event:MouseEvent):void
{
user1.stopDrag();
}
追答
var aa=0 //充当开关用
user1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1)
function mouseDown1(event:MouseEvent):void {
aa=1 //开关打开
}
user1.addEventListener(MouseEvent.MOUSE_UP, mouseReleased1);
function mouseReleased1(event:MouseEvent):void {
aa=0 //开关关闭
}
addEventListener(Event.ENTER_FRAME,fun1)
function fun1(evt:Event):void{
if(aa==1){
user1.x=mouseX//这里是水平,把x改成y就是垂直了
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询