[]graphics如何实现橡皮擦效果

// 增加一个容器
var box = new Sprite();
// 设置容器为画布缓存
box.cacheAs = "bitmap";
this.layCanvas.addChild(box);

// 绘制红色方块
var red = new Sprite();
red.graphics.drawRect(0, 0, 150, 150, "#ff0000");
box.addChild(red);

// 绘制一个圆形区域,利用叠加模式,抠除上面红色区域
var circle = new Sprite();
circle.graphics.drawCircle(0, 0, 50, "#000");
circle.pos(50, 50);
// 设置叠加模式
circle.blendMode = "destination-out";
box.addChild(circle);
 
实现了擦除red节点的内容擦除  但是无法在擦除后的位置重新绘图  因为被上面有circle的透明区域挡住 
 
请问如何实现在擦出后的位置继续绘图呢
 
还是说有更好的解决方案?
已邀请:

cuixueying

赞同来自:

以官方的新手引导为例:擦除的效果只是针对于半透明的黑色遮罩而言的,对你绘图没有影响,你实际上要进行绘制的容器是擦除颜色后下面显示出来的那个对象,而不是你设置叠加模式的的对象!至于哪里可以绘制哪里不可以绘制,取决与你自己对区域的判断!

jiawei3t

赞同来自:

我就是用的官方新手引导例子,问题是这个擦除是叠加模式,只是把下面的内容以透明的颜色遮盖住了,并不是真正的擦除了内容。由于绘图是在内容层做编辑,所以在被擦除过的地方再绘图    依然会被上层遮盖住。
 
这个问题如何解决呢?

要回复问题请先

商务合作
商务合作