Egret社区
1银子
本帖最后由 白鹭社区最牛逼 于 2019-8-15 10:07 编辑

游戏内做一个跑马灯公告,想放在全局top layer里面,同时需要设置跑马灯为可穿透点击事件。
现在把父级group设置为touchenable=false,childrentouch = false,touchthrough = true;
          子项图片设置 touchenable  = false;
当我需要点击top layer 下面的layer内按钮时,无法触发按钮的点击事件;
但我把跑马灯放在与按钮同一个layer内时时没有问题的;
想知道怎么设置能实现不同的eui.layer之间的图片穿透怎么设置,不然界面管理起来很麻烦,求大佬解答。

UILayerTest.rar

835.11 KB, 下载次数: 2, 下载积分: 银子 -1

最佳答案

查看完整内容

两layer中按钮没有遮挡是都能响应的,关键的还是图片挡住了; 从设计上去解决,上一层的图片都挡住了,为啥还要点 [mw_shl_code=actionscript3,true]let button = new eui.Button(); button.label = "button!"; button.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onButtonClick, this); let button2 = new eui.Button(); button2.label = "button2!"; button2.x = 100; ...
分享到 :
0 人收藏

10 个回复

倒序浏览
unfsource  登堂入室 | 2019-8-14 13:35:27
白鹭社区最牛逼 发表于 2019-8-15 21:43
问题就是两个layer同时存在的时候不能实现两个layer中的按钮都同时生效 ...

两layer中按钮没有遮挡是都能响应的,关键的还是图片挡住了;
从设计上去解决,上一层的图片都挡住了,为啥还要点
[mw_shl_code=actionscript3,true]let button = new eui.Button();
        button.label = "button!";
        button.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onButtonClick, this);

        let button2 = new eui.Button();
        button2.label = "button2!";
        button2.x = 100;
        button2.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onButtonClick, this);

        let layer1 = new eui.UILayer();
        layer1.addChild(button);

        let layer2 = new eui.UILayer();
        layer2.touchThrough = true;//
        layer2.addChild(button2);
        this.addChild(layer1);
        this.addChild(layer2);[/mw_shl_code]

点评

我的设计就是分层管理,不让layer点击图片穿透到下一层还是有点不友好。多谢交流!朋友  发表于 2019-8-16 13:09
sunsnail  登堂入室 | 2019-8-14 13:54:33
我觉得你应该提供一个简单的demo 让大家帮你看看 当然 可能你在写这个简单的demo的时候可能就知道问题在哪里了 ,去试试吧
常歌行  官方团队 | 2019-8-14 16:38:00
给要穿透的 eui.Group 设置:
touchChildren = false;
touchEnadled = false
给要点击的 eui.Group 设置:
touchChildren = true;
touchEnadled = false;
这样就可以穿透上层的 group 点击到下层 group 中的元素了
白鹭社区最牛逼  登堂入室 | 2019-8-15 10:08:14
sunsnail 发表于 2019-8-14 13:54
我觉得你应该提供一个简单的demo 让大家帮你看看 当然 可能你在写这个简单的demo的时候可能就知道问题在哪 ...

大佬,附件添加了,有空的话帮忙看看呗,感谢!
白鹭社区最牛逼  登堂入室 | 2019-8-15 10:09:34
常歌行 发表于 2019-8-14 16:38
给要穿透的 eui.Group 设置:
touchChildren = false;
touchEnadled = false

跨UIlayer就没用了,我上传了demo
unfsource  登堂入室 | 2019-8-15 14:31:59
layer1.touchEnabled = false;
layer1.touchChildren = false;
在你下面注释掉的代码中加这两句就好了
白鹭社区最牛逼  登堂入室 | 2019-8-15 17:02:15
unfsource 发表于 2019-8-15 14:31
layer1.touchEnabled = false;
layer1.touchChildren = false;
在你下面注释掉的代码中加这两句就好了 ...

但有一个问题是在实际开发中我还需要监听layer1的child的点击事件,如果这样设置就把所有的子项点击事件都屏蔽掉了,问题就更大了
unfsource  登堂入室 | 2019-8-15 17:36:54
白鹭社区最牛逼 发表于 2019-8-15 17:02
但有一个问题是在实际开发中我还需要监听layer1的child的点击事件,如果这样设置就把所有的子项点击事件 ...

这么说,你有两个layer里面都有按钮,显然只要按钮都能响应就好了;现在你又要遮挡又要穿透,难搞哦
白鹭社区最牛逼  登堂入室 | 2019-8-15 21:43:33
unfsource 发表于 2019-8-15 17:36
这么说,你有两个layer里面都有按钮,显然只要按钮都能响应就好了;现在你又要遮挡又要穿透,难搞哦 ...

问题就是两个layer同时存在的时候不能实现两个layer中的按钮都同时生效
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部