Actionscript 3 如果一个精灵位于具有不同坐标空间的不同容器中,如何使用一个精灵作为另一个精灵的遮罩?
如何使一些Actionscript 3 如果一个精灵位于具有不同坐标空间的不同容器中,如何使用一个精灵作为另一个精灵的遮罩?,actionscript-3,flash,mask,masking,Actionscript 3,Flash,Mask,Masking,如何使一些形状或位图成为不可移动的遮罩,从而切割遮罩上方的所有图形。 (它们放置在具有不同坐标空间的不同容器中) 一些解释: 我在一个类中有一些向量形状,在另一个类中有一些位图图像。我想让形状像“面具”,切割上面的图像形状 我有两个想法,但都行不通: 1) 我尝试了BlendMode,但它们的工作方式是另一种-如果我想擦除某些图像,此图像必须是遮罩图像的父图像,这在我的情况下是不可接受的:图像可以移动,但遮罩应该是不可移动的。此外,我不能将遮罩移动到图像的子容器中,因为它们位于不同的坐标空间中。
形状
或位图
成为不可移动的遮罩,从而切割遮罩上方的所有图形。
(它们放置在具有不同坐标空间的不同容器中)
一些解释:
我在一个类中有一些向量形状
,在另一个类中有一些位图
图像。我想让形状像“面具”,切割上面的图像形状
我有两个想法,但都行不通:
1) 我尝试了BlendMode
,但它们的工作方式是另一种-如果我想擦除某些图像,此图像必须是遮罩图像的父图像,这在我的情况下是不可接受的:图像可以移动,但遮罩应该是不可移动的。此外,我不能将遮罩移动到图像的子容器中,因为它们位于不同的坐标空间中。
我做了解释图:
2) 对遮罩层使用.mask
属性。但是遮罩和位图在不同的坐标空间中,所以这不起作用。遮罩就是解决方案!我做了一个黑色的面具,在里面我用BlendMode.Erase
property来画我的形状。所以我在这个面具上得到了一个透明的形状形成的洞。
然后我将其设置为图像的.mask
属性,并设置为image和mask.cacheAsBitmap=true
。必须将遮罩和图像添加到后台(遮罩.visibility=false
)
这样,遮罩开始工作,并以透明区域“剪切”我的图像。不完全确定你想做什么,但可以工作的一件事是制作形状的副本,放入与位图相同的“坐标空间”,并将该形状用作遮罩,而不是原始形状。你说得对,将形状副本移动到其他坐标空间是另一种解决方案。但它与BlendMode不兼容,BlendMode要求遮罩层是图像层的子层(或者,图像层是遮罩层的子层),如果遮罩层必须是不可移动的相对级,但图像容器移动,这是不可接受的。