主题:  有关拖动的问题~~~~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就行,但这样只能判断一个点。多几个点就不行了。