cocos 2.4,背包列表里面我想实现拖动某个物品的时候,原位置还会继续显示这个物品,求助!!!求助!!!求助!!!

cocos 2.4,背包列表里面我想实现拖动某个物品的时候,原位置还会继续显示这个物品,我尝试过直接复制一个我当前点击的这个物品,然后move的时候就是移动复制的这一个物品,原位置就会继续显示这个物品,但是end结束的时候监听不到复制的这一个物品,不能对他进行销毁的操作,求助各位大佬!!!

在一个滑动列表里面拖动里面的预制体 item
this.node 是预制体脚本的当前点击节点,this._copyNode 是 cc.instantiate 复制的一个相同节点

用个变量把这个 复制的物品接住,然后end 的时候干掉就好了。

我是这样写的

你这个 this._copyNode 怎么定义的

private _copyNode: cc.Node = null;

你这里copynode没触发过touchstart事件是不会触发end的。你在node的end里销毁呗

但是我移动的是复制的这个呀,copyNode节点

先申明一个变量 也就是你的 this._copyNode = null, 对你的预制件this.node做事件监听。 在move 和 end 里面去操作 this._copyNode 刚刚试了下 TOUCHEND事件是有点不贼的, 但是可以用TOUCH_CANCEL事件的。

那你能把你end的代码发出来看看吗

这样操作end我就没有想明白怎么操作,因为TOUCH_CANCEL的范围超过this.node的范围就会触发,然后我end里面要实现的就是销毁这个this._copyNode

我是没看出来就凭你贴的这行代码你凭什么能监听到end事件,连start都没注册

代码有点丑。。。讲究看下。


这样一离开node的范围就销毁了,拖不出去

兄弟,看看呢

为什么不换个思路呢?拖动本体 复制一个放在本体原先得位置

或者 整个大的监听范围,根据世界坐标算出点的是哪个。

这样没错啊

我尝试过,把复制的节点setParent的时候会自动添加到children的最后一个去,然后我给他重新排序,还是有问题

那为什么不临时关掉list呢?还有 为什么要排序?它只是放在那显示而已啊,

这里监听的是node的范围,cancel只要超出node这个节点的范围就会触发事件了,直接就会执行销毁,所以我不知道监听node的话,如何保证他不会直接销毁掉