lufy's legend

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

关于多层子对象点击事件疑惑

[复制链接]

3

主题

0

好友

37

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2016-11-25 10:53:57 |显示全部楼层 |倒序浏览
本帖最后由 xionchan 于 2016-11-25 11:54 编辑

一个LSprite(如:layer)内有N 个 对象,子对象点击事件可以通过这样方式实现:

layer.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
obj = e.target;
//obj即获取的子对象。
……
});


如果与layer平级同类型的对象下的子对象事件
必须用循环来实现吗?(注:parent为这些子对象的父对象)

如:

for(var i=0; i<parent.childList.length;i++;){
//parent.childList【i】实际上等于 layer1,layer2,layer3…………
  parent.childList【i】.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
   obj = e.target;
   //obj即获取的子对象。
   ……
  });
}



http://lufylegend.com/demo/test/103.html
如这个例子,
这些拖拽对象都在rect1容器内,如果还有rect2,rect3容器内有类似的对象,也需要有拖拽事件呢?
有没有更好的解决办法统一处理?

回复

使用道具 举报

3

主题

0

好友

37

积分

士兵

Rank: 1

沙发
发表于 2016-11-25 11:51:55 |显示全部楼层
本帖最后由 xionchan 于 2016-11-25 12:07 编辑

rect2,rect3和rect1是同级的,里面的对象差不多,都有n个子对象。

rect1,rect2,rect3,……的父对象为 parent

我现在是要监听 rect1,rect2,rect3 ……中所有子对象点击事件

是不是只能通过 循环来实现?

for(var i=0; i<parent.childList.length;i++;){

//这里的 parent.childList【i】实际上就等于   rect1,rect2,rect3 ……
  parent.childList【i】.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
   obj = e.target;
   //obj即获取的子对象。
   ……
  });
}



也就是我如何获取  parent 对象所有“孙”对象的点击事件!
回复

使用道具 举报

3

主题

0

好友

37

积分

士兵

Rank: 1

板凳
发表于 2016-11-25 13:23:32 |显示全部楼层
rect1,rect2,rect3  ……这个是不固定的,  也就是只能循环 获取这些对象再加侦听事件咯。
回复

使用道具 举报

3

主题

0

好友

37

积分

士兵

Rank: 1

地板
发表于 2016-11-27 15:48:51 |显示全部楼层
lufy 发表于 2016-11-25 14:51
如果对象不是太多的话,需要判断的每个子对象加个点击事件更简单
具体案例具体分析,关键是弄明白原理,
...

谢谢lufy!
回复

使用道具 举报

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

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

Archiver|lufy's legend

GMT+8, 2024-5-20 04:32 , Processed in 0.044147 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部