Egret社区
本帖最后由 byderek2 于 2021-1-26 17:25 编辑

https://bbs.egret.com/forum.php?mod=viewthread&tid=51091
根据这个哥们的帖子做了个橡皮擦除功能,h5网页正常,但是在打包发布Android ios 原生环境在擦除的时候会出现闪烁
可能是下面这段代码有性能问题,有高手帮忙优化不
  // 创建一个位图的反遮罩
    private createReverseMask2() {
        // 遮罩图Texture
        this.renderTexture.drawToTexture(this.eraserSp, new egret.Rectangle(0, 0, this.width, this.height));
        this._bitmapMask.texture = this.renderTexture;
        // RenderTexture,把反遮罩绘制上去
        this.renderTex.drawToTexture(this._bitmapMask);
        // 得到最终的反遮罩位图对象
        this.reverseMask.texture = this.renderTex;
        this.mask = this.reverseMask;
    }

eraserDemo.rar

906.02 KB, 下载次数: 7, 下载积分: 银子 -1

分享到 :
0 人收藏

8 个回复

倒序浏览
app小王子  社区管理员 | 2021-1-27 11:18:16
收到 该问题已复现,应该主要是renderTexture作为遮罩有问题的原因 我这边提交给研发组,有进度回帖告知 谢谢您的反馈!
byderek2  登堂入室 | 2021-1-27 16:48:40
app小王子 发表于 2021-1-27 11:18
收到 该问题已复现,应该主要是renderTexture作为遮罩有问题的原因 我这边提交给研发组,有进度回帖告知 谢 ...

感谢,有解决得方法麻烦通知一声,已经用到线上项目中了
一只小菜鸡  登堂入室 | 2021-1-28 18:01:20
白鹭底层有支持反向遮罩 不过没有提供接口, QQ图片20210128175753.png
我在 egret.web.js 中试着加了一段  然后对应的mask 加一个参数 maskType == 1即可
少调用了一次drawToTexture
在h5上可以显示
不过在打包成安卓工程的时候,还是会变回destination-in的效果不知道为啥。
byderek2  登堂入室 | 2021-1-29 11:59:40
应该是居于原生底层重新生成了
一只小菜鸡  登堂入室 | 2021-1-29 16:06:41
byderek2 发表于 2021-1-29 11:59
应该是居于原生底层重新生成了

是的不过我没找到关键代码。不过用这个方法 在h5上 可以不使用egret.renderTexture就可以实现橡皮擦效果
app小王子  社区管理员 | 2021-1-29 17:24:43
byderek2 发表于 2021-1-27 16:48
感谢,有解决得方法麻烦通知一声,已经用到线上项目中了

好的
byderek2  登堂入室 | 2021-2-1 16:00:09

有解决的方法吗
app小王子  社区管理员 | 2021-2-7 10:55:36
byderek2 发表于 2021-2-1 16:00
有解决的方法吗

这个问题我已经提交了  研发那边还没有时间处理 抱歉 我们尽快处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部