循环创建的精灵怎么注册触摸监听???

我循环创建的精灵,给每个精灵注册相同的触摸监听!每个精灵之间都相互重叠!点击重叠部分时几个精灵都同时响应了,我只想响应点击的那一个,请问各位大神怎么弄啊???在触摸监听加入setSwallowTouches(true);函数,只有最后一个精灵响应!

没人吗???帮帮忙啊大神们??说白了就是扑克游戏出牌时选择牌面!这个触摸监听怎么做????

大神们啊来帮帮忙啊!!!!

触摸的时候设置精灵的zOrder

怎么怎么设置??我是初学者,嫩给我上点代码吗????

判断一下点击的位置在不在精灵自身范围内

我是几个精灵重叠在一起的!!点击重叠位子,如果判断,那都在几个精灵范围内!!

选一个zIndex最大的

怎么选择??能给我上点代码吗??谢谢,初学还有些不懂!!!

来个大神给我说说吧!!!怎么做啊?我用for循环创建了几个精灵,在循环的同时给每一个精灵都添加了触摸监听,几个精灵是相互重叠的,点击重叠位置时,都响应了,添加触摸吞噬函数后就只有最上层响应,怎么弄啊??

可以参考cpp-tests里面的NewEventDispatherTest这个测试例。

你要的是什么效果啊?如果用的是addEventListenerWithSceneGraphPriority,那么就会根据层级关系相应,把setSwallowTouches设置为true,调整localzorder,想让哪个先响应就把哪个放最上面呢~

个人建议:
首先,总体思想上,牌不要用sprite,改用imageView(原因:sprite的触摸监听写起来很蛋疼,ccui有自己的监听);
其次,具体来说,自己写一个继承自imageView的类(比如叫cardImageView),并且在这个类的构造器里面实现初始化(比如传入牌的类型,图片路径什么的)和监听(也就是new对象的时候直接让它自己监听自己)。至于监听的逻辑该如何写,你可以根据传入的牌的类型来写一个大大的switch case,或者直接传入一个回调都可以,看你自己喜好

就是扑克牌游戏!扑克牌面,我用循环创建的!所有牌面都是相互重叠在一起的,点击每张牌都只有点击的那张响应,

怎么弄啊??能给我上点代码吗????

我咋感觉更麻烦呢????您还有其他方法没?给我说说呗!!!

后来我又先循环的创建精灵,为每个精灵添加标记!然后写个函数,通过标记获取每个精灵,为每个精灵单独的注册触摸监听,第一个直接用创建好的触摸监听注册,后面的就直接复制(clone())触摸监听,但效果还是一样,这是怎么回事大神们给我说说呗!!!!

var CardImageView=ccui.ImageView.extend({
		type:null,
		ctor:function(type,res){
			this._super(res);
			this.type=type;
			this.addClickEventListener(this.handle);
		},
		handle:function(){
				switch(this.type){
					case 1:
						//TODO:
						break;
					case 2:
						//TODO
						break;
				}	
		}
})
-------------------------------------------
var types=[1,2,3];
var res=["1.png","2.png","3.png"];
var listView=new ccui.ListView();
for(var i=0;i<3;i++){
	var card=new CardImageView(types[i],res[i]);
	listView.pushBackCustomItem(card);
}

我是用js的,所以就表示个大概意思

这样还嫌麻烦我也没什么可说的了……我就是嫌sprite的触摸判断麻烦才建议你用imageView的

谢谢了!!!!