|
主题: 有关拖动的问题~~~~HELP~~~~
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#12001/10/31 18:35:08
一个MC我想拖动,但是只允许他被拖到几个点。比如这个MC在X=20 Y=30 ,我只想让它能被拉到这几个座标,如X=50 Y=90 ;X=30 Y=80; X=60 Y=100。应该怎么搞啊,我把矩形的限制设成变量。但是不行  还有,如果有个点上有一个MC就不能拖到哪个点。又怎么判断这个点上有没有MC? 不知能不能清楚我的意思
|
 手工感情
职务:普通成员
等级:3
金币:10.0
发贴:556
注册:2001/1/3 2:50:20
|
#22001/10/31 18:45:40
on (release) { if ((_this._x==50) and (_this._y=90) ){ stopDrag (); } } 不过这样的精度太细,一定要在那个点上才能停止拖拽。当然为了检测,你也可以先获取MC的初始位置,如果条件不满足的话,放开鼠标MC就回到原来的位置上。
黑色的风略过我的翅膀,我却无法落下来梳理你的羽毛 ———————————————— ◆5d.cn互动论坛◆ ------|xml版主|------
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#32001/10/31 19:40:09
handmade在上个帖子中说 引用: …… if ((_this._x==50) and (_this._y=90) ){ ……
this不是内置属性,前面没有下划线
|
 5D荣誉斑竹
职务:普通成员
等级:1
金币:10.0
发贴:265
注册:2000/12/16 0:32:09
|
#42001/10/31 19:58:05
这种情况,应该用hitTest来做。
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#52001/10/31 20:07:02
onclipevent(load){ mousedown=false; } onclipevent(mousedown){ if(!mousedown){ startdrag(this); mousedown=true; } } onclipevent(enterframe){ if(mousedown && this.hittest(target_mc,true)){ stopdrag(); } }
编辑历史:[这消息被janlay编辑过(编辑时间2001-10-31 21:09:39)]
|
 阿修罗飞天舞
职务:普通成员
等级:1
金币:0.0
发贴:115
注册:2001/5/23 9:14:30
|
#62001/10/31 22:16:59
做MC,用_droptarget来检测,要比hittest要好
|
 阿修罗飞天舞
职务:普通成员
等级:1
金币:0.0
发贴:115
注册:2001/5/23 9:14:30
|
#72001/10/31 22:19:10
on (press) { startDrag (this, true); } on (release) { stopDrag (); if (this._droptarget == "/MCNAME") { 执行语句; } }
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#82001/11/1 10:07:55
谢谢 待我试一下先。不过瓜子说的HITTEST和阿修罗说的_droptarget偶还用过。
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#92001/11/1 12:48:37
janlay在上个帖子中说 引用: onclipevent(load){ mousedown=false; } onclipevent(mousedown){ if(!mousedown){ startdrag(this); mousedown=true; } } onclipevent(enterframe){ if(mousedown && this.hittest(target_mc,true)){ stopdrag(); } }
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#102001/11/1 12:54:23
关于第一个问题,我用IF ELSE IF~~~~~~~~~~判断不行,但是用IF ELSE就行,但这样只能判断一个点。多几个点就不行了。按理说用IF ELSE IF应该行的啊  程序大概是这样的: IF 条件一 设置MC的X,Y ELSE IF 条件二 设置MC的X,Y ELSE IF 条件三 设置~~~ ELSE MC还原 停止拖动
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#112001/11/1 17:56:00
onClipEvent (mouseDown) { startDrag (this, true); x = this._x; y = this._y; } onClipEvent (mouseUp) { if (this._x<=x+40 and this._x>=x+30) { setProperty (this, _x, x+35); setProperty (this, _y, y); } else if (this._x<=x-40 and this._x>=x-30) { setProperty (this, _x, x-35); setProperty (this, _y, y); } else if (this._x<=y-40 and this._x>=y-30) { setProperty (this, _y, y-35); setProperty (this, _x, x); } else { setProperty (this, _x, x); setProperty (this, _y, y); } stopDrag (); } 这个MC的源码。 只有第一个IF有用,后面的无效
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#122001/11/1 18:04:36
要理清条件之间的逻辑关系。在动手写代码之前最好在纸上把各种制约关系写在纸上,再开始写
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#132001/11/1 23:17:33
janlay在上个帖子中说 引用: 要理清条件之间的逻辑关系。在动手写代码之前最好在纸上把各种制约关系写在纸上,再开始写
这个很简单啊,很有条理啊  可就是不行,知道哪儿错了么?
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
|
#142001/11/2 12:56:22
抬一下,各位帮我看看哪儿错了啊。
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#152001/11/2 15:25:27
从这就可以看出,你还没弄清条理 地狱天堂在上个帖子中说 引用: 关于第一个问题,我用IF ELSE IF~~~~~~~~~~判断不行,但是用IF ELSE就行,但这样只能判断一个点。多几个点就不行了。
|