Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如果一个精灵位于具有不同坐标空间的不同容器中,如何使用一个精灵作为另一个精灵的遮罩?_Actionscript 3_Flash_Mask_Masking - Fatal编程技术网

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要求遮罩层是图像层的子层(或者,图像层是遮罩层的子层),如果遮罩层必须是不可移动的相对级,但图像容器移动,这是不可接受的。