lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: zyflzxy
打印 上一主题 下一主题

位图与位图不能MASK

[复制链接]

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

楼主
发表于 2014-12-9 17:46:29 |显示全部楼层
canvas里位图是不能做遮罩的,如果实在要做的话,lufylegend中可以使用一些特殊的做法,让位图或者对象变成遮罩,下面是个例子
上面的是正常动画,下面的动画是用遮罩,具体做法你看一下代码吧
http://lufylegend.com/demo/test/66.html
不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2014-12-10 10:40:43 |显示全部楼层
zyflzxy 发表于 2014-12-10 10:27
就是遮罩和被遮罩在不同的容器里,可不可以实现MASK?        (这两个位图是在同个容器里)

hideSprite = new  ...

所谓遮罩,就是不应该显示的东西
不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

板凳
发表于 2014-12-10 18:04:50 |显示全部楼层
zyflzxy 发表于 2014-12-10 17:42
我想的是这种效果,你看能实现到吗?
就是被遮罩的位图,能实实调用不同的遮罩,而不是限定一个。
clothe ...

我给你的那个连接,mask就是一个LAnimationTimeLine对象,也就是一个LSprite对象
动画都能当遮罩了,改变遮罩的形状不是很简单吗
按你的这个,把遮罩设置为maskMc,然后把maskMc中遮罩部分设为可现实,其他不是遮罩的部分设置为不显示,不就ok了吗?
不同的对象,要对应不同的遮罩,如果都想用maskMc的话,clone一下分别使用就ok了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

地板
发表于 2014-12-11 12:20:20 |显示全部楼层
zyflzxy 发表于 2014-12-11 10:15
可是你这个遮罩层里面放了遮罩与被遮罩都放在同个容器里,然后再进行绘制,我还是不太明白其中的原理。
h ...

首先你要知道LBlendMode,API中都有解释,SOURCE_IN是在新图形以及已有内容重叠的地方,新图形才绘制。所有其他内容成为透明。
hideSprite是一个容器,先假设这个容器已经被添加到画面上了
那么先在容器中加入动画hidePlayer,这时候就显示了hidePlayer
再加入bitmapFace,bitmapFace会把原来的hidePlayer盖上,但是这时候设置了bitmapFace.blendMode = LBlendMode.SOURCE_IN;
所以只显示bitmapFace的重叠的部分

再说说,为什么我要让它hide,就是说hideSprite容器并没有添加到画面上
因为LBlendMode的效果是使用在整个canvas上的,为了不影响其他的图形对象,所以它不可以显示
又不能显示它,又要把它里面的图形拿出来,所以就是最后的bitmapDataShow.draw(hideSprite);了

够明白了吧
不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

5#
发表于 2014-12-11 21:08:28 |显示全部楼层
zyflzxy 发表于 2014-12-11 14:42
谢谢您的细心回复,我也明白了你的意思,但是我不太懂怎么去弄,你能做个简单的演示吗?
就是多个位图, ...

如果你要用位图做遮罩的话,就不能用mask了,得像我前面给你的例子一样用LBlendMode
如果是普通的遮罩就简单了,
你到底是想用位图遮罩还是普通的mask?
不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

6#
发表于 2014-12-12 10:27:40 |显示全部楼层
zyflzxy 发表于 2014-12-11 14:42
谢谢您的细心回复,我也明白了你的意思,但是我不太懂怎么去弄,你能做个简单的演示吗?
就是多个位图, ...

只能帮你到这里了
剩下的依葫芦画瓢自己弄吧
三个对象,分别对应三个mask
http://lufylegend.com/demo/test/167.html
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-7 03:00 , Processed in 0.047756 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部