- 注册时间
- 2013-2-13
- 最后登录
- 2023-10-13
- 阅读权限
- 200
- 积分
- 9309
- 精华
- 1
- 帖子
- 2411
|
after5120 发表于 2016-3-13 09:41
效果类似于这种
最简单的,当然是用几个矩形来拼凑了,但是既然你发帖,估计也是不想使用这种方法
还有一种方法就是使用LBlendMode.SOURCE_OUT混色模式了,下面是我写了一个简单的函数
你只要传入你要的参数即可,第一个是LPoint对象,是半透明的范围大小,第二个参数是LRectangle对象,是中间扣除的范围- function getMask(point, rectangle){
- var baseLayer = new LSprite();
- baseLayer.alpha = 0.8;
- var rectangleLayer = new LSprite();
- rectangleLayer.graphics.drawRect(0, "#000000", [rectangle.x, rectangle.y, rectangle.width, rectangle.height], true, "#000000");
- baseLayer.addChild(rectangleLayer);
- var pointLayer = new LSprite();
- pointLayer.graphics.drawRect(0, "#000000", [0, 0, point.x, point.y], true, "#000000");
- pointLayer.blendMode = LBlendMode.SOURCE_OUT;
- baseLayer.addChild(pointLayer);
- baseLayer.cacheAsBitmap(true);
- return baseLayer;
- }
复制代码 不明白的话,可以看这个demo
http://lufylegend.com/demo/test/124.html |
|