Egret社区

[Bug处理中] 显示对象混合模式作用效果不正确

2015-11-25 15:11
500219
产品 Egret Engine 版本 2.54
复现概率 100% 平台 Windows 7
复现步骤 需求实现镂空背景部分的显示,所以采用了擦除的混合模式,底层是一个黑色的底,上一层的显示对象是一个圆形,圆使用擦除模式跟底层做混合。 但是 出现的效果是 上层的圈直接变成黑色了。底层也没出现擦除的效果。
问题描述 需求实现镂空背景部分的显示,所以采用了擦除的混合模式,底层是一个黑色的底,上一层的显示对象是一个圆形,圆使用擦除模式跟底层做混合。 但是 出现的效果是 上层的圈直接变成黑色了。底层也没出现擦除的效果。
错误代码 this._bg = new GameBitmap;
this._bg.setDataBySource("background.jpg");
this._bg.x = 0;
this._bg.y = 0;
this._show = new GameBitmap;
this._show.x = 0;
this._show.y = 0;
this._show.setDataBySource("box.png");
this._show.blendMode = egret.BlendMode.ERASE;
this.addChild(this._bg);
this.addChild(this._show);
BUG截图
本帖最后由 acxzx 于 2015-11-25 15:31 编辑

需求实现镂空背景部分的显示,所以采用了擦除的混合模式,底层是一个黑色的底,上一层的显示对象是一个圆形,圆使用擦除模式跟底层做混合。 但是 出现的效果是  上层的圈直接变成黑色了。底层也没出现擦除的效果。

如果没使用混合模式的效果是这样的

@yjtx
求助2.jpg
分享到 :
3 人收藏

19 个回复

正序浏览
dcf  登堂入室 | 2020-6-17 15:14:44
yjtx 发表于 2015-11-25 16:59
var sky:egret.Bitmap = new egret.Bitmap(RES.getRes("bg_jpg"));
        this.addChild(sky);
        ...

混合模式怎么才能混合一层容器,现在是蒙版和背景都擦除掉了
snowolder  登堂入室 | 2017-11-13 14:06:42
都5.0版本了 怎么还没解决?
xxzz  登堂入室 | 2017-8-22 13:32:40
这个问题解决了吗4.0.3,我怎么还是遇到了这个问题
yjtx  官方团队 | 2016-1-26 18:06:00
cloudlin 发表于 2016-1-26 13:33
这个到现在还没改好啊. 是不是这个bug不重要, 太慢了把

由于一些其他任务的插入,这个会在 webgl 上线后修复,现在的规避方式就是对容器进行缓存,可以参考前面的代码
cloudlin  登堂入室 | 2016-1-26 13:33:42
yjtx 发表于 2015-11-25 17:25
在排期中,可能要到12月底了。

这个到现在还没改好啊. 是不是这个bug不重要, 太慢了把
kitfire  登堂入室 | 2015-12-30 15:55:15
本帖最后由 kitfire 于 2015-12-30 16:07 编辑

确实是个bug
yjtx  官方团队 | 2015-11-25 17:25:43
acxzx 发表于 2015-11-25 17:18
问题暂时解决了
擦除的效果跟as3的是一样  上层的跟下层的透明度取 255的反值。
layer 层的 开发有计划不 ...

在排期中,可能要到12月底了。
acxzx  登堂入室 | 2015-11-25 17:18:33
yjtx 发表于 2015-11-25 17:12
将当前canvas的区域全清

问题暂时解决了
擦除的效果跟as3的是一样  上层的跟下层的透明度取 255的反值。
layer 层的 开发有计划不 。。
我这个是拿来做战争迷雾使用的  这样的draw 怕性能扛不住啊。
yjtx  官方团队 | 2015-11-25 17:12:22
acxzx 发表于 2015-11-25 17:08
擦除的效果好些跟as3的擦除效果差异很大
如果我上一层的显示对象是一个渐变颜色的 也是很暴力的直接擦除 ...

将当前canvas的区域全清
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部