lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6081|回复: 7
打印 上一主题 下一主题

为什么拖拽的时候 拖到另一个lsprite的时候 stopDrag就失效了

[复制链接]

18

主题

0

好友

198

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2014-9-4 14:58:17 |只看该作者 |倒序浏览
就是把第一个正方形拖到第二个正方形上  松开鼠标 stopDrag没反应

QQ截图20140904145514.png (2.17 KB, 下载次数: 1226)

QQ截图20140904145514.png

回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2014-9-4 15:02:53 |只看该作者
请贴出相关代码,或者提供可运行的demo
否则我无法解决你的问题
不回答与技术和引擎不相关的问题
回复

使用道具 举报

18

主题

0

好友

198

积分

士兵

Rank: 1

板凳
发表于 2014-9-4 15:05:07 |只看该作者
http://lufylegend.com/api/api/LSprite/startDrag.html
用回你这个DEMO  你第一次把第一个正方形拖到第二个正方形上失效就出现了
但是当第二个正方形也被拖出来的时候  第一个正方形拖拽到第二个正方形上stopDrag没有失效  这是为何?
回复

使用道具 举报

18

主题

0

好友

198

积分

士兵

Rank: 1

地板
发表于 2014-9-4 15:05:26 |只看该作者
lufy 发表于 2014-9-4 15:02
请贴出相关代码,或者提供可运行的demo
否则我无法解决你的问题


http://lufylegend.com/api/api/LSprite/startDrag.html
用回你这个DEMO  你第一次把第一个正方形拖到第二个正方形上失效就出现了
但是当第二个正方形也被拖出来的时候  第一个正方形拖拽到第二个正方形上stopDrag没有失效  这是为何?
回复

使用道具 举报

18

主题

0

好友

198

积分

士兵

Rank: 1

5#
发表于 2014-9-4 15:07:29 |只看该作者
lufy 发表于 2014-9-4 15:02
请贴出相关代码,或者提供可运行的demo
否则我无法解决你的问题

应该是这DEMO 第一个正方形拖到另外2个正方形上  有失效问题
另外2个正方形往第一个拖没问题
回复

使用道具 举报

18

主题

0

好友

198

积分

士兵

Rank: 1

6#
发表于 2014-9-4 15:09:20 |只看该作者
                        init(1000 / 60, 'legend',480, 756, main);
                        var con;
                        var a;
                        var b
                        var z=0;
                        function main(){
                                con=new LSprite();
                                con.graphics.drawRect(0,'black',[0,0,480,756],!0,'black')
                                addChild(con);
                                a=new LSprite();
                                a.graphics.drawRect(0,'red',[0,0,100,100],!0,'red');
                                con.addChild(a);
                                b=new LSprite();
                                b.graphics.drawRect(0,'red',[0,0,100,100],!0,'red');
                                addChild(b);
                                b.x=480/2;
                                b.y=756/2;
                                a.addEventListener(LMouseEvent.MOUSE_DOWN,down);
                                a.addEventListener(LMouseEvent.MOUSE_UP,up);
                                addChild(new FPS());
                        }
                        function down(e){
                                e.clickTarget.startDrag(e.touchPointID);
                        }
                        function up(e){
                                e.clickTarget.stopDrag();
                        }
然后这是我的DEMO LUFY帮忙看看什么问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

7#
发表于 2014-9-4 15:34:52 |只看该作者
s42249 发表于 2014-9-4 15:09
init(1000 / 60, 'legend',480, 756, main);
                        var con;
                        var a;

这是因为对象被遮挡住了的问题
如果以我的demo为例,解决的办法,
1,在点击对象的时候,利用setChildIndex对对象进行排序,让被拖动的对象位于最上层
  1.    LInit(1000/50,"legend",800,450,main);
  2.                         function main(){
  3.                                 LMultitouch.inputMode = LMultitouchInputMode.TOUCH_POINT;
  4.                                 for(var i=0;i<3;i++){
  5.                                         var child = new LSprite();
  6.                                         child.x = 250*i;
  7.                                         child.graphics.drawRect(2,"#ff0000",[0,0,100,100],true,"#ff0000");
  8.                                         child.addEventListener(LMouseEvent.MOUSE_DOWN,ondown);
  9.                                         child.addEventListener(LMouseEvent.MOUSE_UP,onup);
  10.                                         addChild(child);
  11.                                 }
  12.                         }
  13.                         function ondown(e){
  14.                                 e.target.parent.setChildIndex(e.target,e.target.parent.numChildren - 1);
  15.                                 e.target.startDrag(e.touchPointID);
  16.                         }
  17.                         function onup(e){
  18.                                 e.target.stopDrag();
  19.                         }
复制代码
运行如下
http://lufylegend.com/demo/test/52.html


2,可以将鼠标弹起事件,加到父容器上
  1.    LInit(1000/50,"legend",800,450,main);
  2.                         //此变量用来保存正在拖动的对象
  3.                         var dragObject;
  4.                         function main(){
  5.                                 LMultitouch.inputMode = LMultitouchInputMode.TOUCH_POINT;
  6.                                 var layer = new LSprite();
  7.                                 addChild(layer);
  8.                                 for(var i=0;i<3;i++){
  9.                                         var child = new LSprite();
  10.                                         child.x = 250*i;
  11.                                         child.graphics.drawRect(2,"#ff0000",[0,0,100,100],true,"#ff0000");
  12.                                         child.addEventListener(LMouseEvent.MOUSE_DOWN,ondown);
  13.                                         layer.addChild(child);
  14.                                 }
  15.                                 layer.addEventListener(LMouseEvent.MOUSE_UP,onup);
  16.                         }
  17.                         function ondown(e){
  18.                                 dragObject = e.target;
  19.                                 e.target.startDrag(e.touchPointID);
  20.                         }
  21.                         function onup(e){
  22.                                 dragObject.stopDrag();
  23.                         }
复制代码
运行如下
http://lufylegend.com/demo/test/51.html


不回答与技术和引擎不相关的问题
回复

使用道具 举报

18

主题

0

好友

198

积分

士兵

Rank: 1

8#
发表于 2014-9-4 15:58:22 |只看该作者
lufy 发表于 2014-9-4 15:34
这是因为对象被遮挡住了的问题
如果以我的demo为例,解决的办法,
1,在点击对象的时候,利用setChildInd ...

明白了  非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-3 04:28 , Processed in 0.054119 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部