lufy's legend

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

关于点击事件的穿透性

[复制链接]

1

主题

0

好友

33

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2014-6-11 12:47:05 |只看该作者 |倒序浏览
你好大神,我在使用该款引擎的过程中,碰到以下问题:
主要是关于点击事件的穿透性
1,例如我把开始游戏界面隐藏了,然后载入游戏界面,但发现点击游戏界面的同时,还会触发到开始游戏的按钮事件。这里是否需要直接removeChild开始界面,而不是隐藏开始界面呢?
2,就是层的叠加,例如我叠加了两层LSprite,点击最顶的一层,还是会触发下一层的点击事件,想问关于事件的穿透性,需要如何解决,因为参考了其他引擎,都会有相关设置,恳请大神解答

回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

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

沙发
发表于 2014-6-11 18:31:25 |只看该作者
两个问题我都要确认一下你的做法才能回答。
第一个,
你是如何隐藏游戏界面的?如果使用visible=false;的话,鼠标事件应该是不会被触发的,你是这样做的吗?
第二个,
在引擎里,关于鼠标事件,我提供了两种做法,就是是否使用鼠标容器。
在不使用鼠标容器的情况下,鼠标事件是可以实现遮挡的,应该不会存在你说的问题。
如果使用了鼠标容器,鼠标事件触发的时候,就不会再去考虑是不是被触发的对象是不是被遮挡住了,只要在它可触发的范围之内就会触发,所以相对来说,鼠标容器更高效一些,但是缺点就是无法实现遮挡,或者说遮挡部分需要自己去判断。
所以,关于如何去解决这个问题,你需要告诉我你是否使用了鼠标容器?
不回答与技术和引擎不相关的问题
回复

使用道具 举报

1

主题

0

好友

33

积分

士兵

Rank: 1

板凳
发表于 2014-6-14 23:11:56 |只看该作者
第一个:我先说明一下结构,开始界面是一个LSprite层,然后里面包含了两个子的LSprite,每个LSprite又各自包含一个bitmap来作为按钮的图片,然后我给这两个子LSprite绑定点击事件。
当我点击了按钮,便会开始游戏。我是直接把开始界面(也就是一个LSprite层),用visible=false隐藏了,界面是隐藏了,但在游戏界面中,只要点击之前开始界面的按钮的位置,就会触发按钮的事件
我现在的解决方法是给这个开始界面的最顶LSprite层也添加一个事件侦听,但不干任何事。
第二个:我没有使用鼠标容器。
回复

使用道具 举报

1

主题

0

好友

33

积分

士兵

Rank: 1

地板
发表于 2014-6-14 23:13:16 |只看该作者
还有,我想问一下,我发现bitmap是不能直接绑定事件的,必须用LSprite装起来,然后给LSprite添加事件。请问大神作者,我是否理解正确?
回复

使用道具 举报

46

主题

3

好友

1866

积分

偏将军

Rank: 4

5#
发表于 2014-6-15 10:48:29 |只看该作者
sallypanda 发表于 2014-6-14 23:13
还有,我想问一下,我发现bitmap是不能直接绑定事件的,必须用LSprite装起来,然后给LSprite添加事件。请问 ...

如果是最新版本1.8.12,那应该不会有这些问题啊。
或者你可以把代码贴出来,方便大家帮忙检查
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

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

6#
发表于 2014-6-15 16:48:53 |只看该作者
sallypanda 发表于 2014-6-14 23:11
第一个:我先说明一下结构,开始界面是一个LSprite层,然后里面包含了两个子的LSprite,每个LSprite又各自包 ...

http://lufylegend.com/demo/test/37.html
这个是将visible设置为false的例子

http://lufylegend.com/demo/test/38.html
这是鼠标事件被遮挡后点击无效的例子

你对照一下,看看哪里有问题吧
不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

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

7#
发表于 2014-6-15 16:49:44 |只看该作者
sallypanda 发表于 2014-6-14 23:13
还有,我想问一下,我发现bitmap是不能直接绑定事件的,必须用LSprite装起来,然后给LSprite添加事件。请问 ...

LBitmap是不支持鼠标事件,但是支持自定义事件
不回答与技术和引擎不相关的问题
回复

使用道具 举报

1

主题

0

好友

33

积分

士兵

Rank: 1

8#
发表于 2014-6-16 10:44:03 |只看该作者
大神,你给我的demo,是没错,我也试过,如果结构是按照demo的结构,的确是可以。
但如果我的事件并不是直接绑定给最外层的LSprite,而是里面的一个子LSprite,就会出现我说的问题,请大神测试一下
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

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

9#
发表于 2014-6-16 13:31:23 |只看该作者
sallypanda 发表于 2014-6-16 10:44
大神,你给我的demo,是没错,我也试过,如果结构是按照demo的结构,的确是可以。
但如果我的事件并不是直接 ...

首先要清楚一点就是
点击了子对象的话,就相当于点击了父对象,因为子对象是父对象的一部分
能说一下你具体是怎么做的吗?
不回答与技术和引擎不相关的问题
回复

使用道具 举报

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

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

Archiver|lufy's legend

GMT+8, 2024-5-3 08:35 , Processed in 0.049385 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部