如何在ActionScript 3.0中使用遮罩?

时间:2019-06-06 10:33:37

标签: actionscript-3 actionscript flashdevelop

我想用另一个图像mask.png遮罩png图像pattern.png,但它根本不起作用,我也找不到原因。代替遮罩图像,遮罩只是消失了,图案保持了原来的状态。

我尝试制作MovieClip,例如一个圆圈,然后将其用作mask而不是mask.png,效果很好。是因为您不能使用加载程序对象作为掩码吗?我该如何运作?

edit:将mask.png的大小更改为小于图案后,我意识到它实际上可以完成某种工作,但是发生的是将图案切成我在图形中绘制的形状,而不是png文件只将其切成整个文件的形状,因为它也计算矩形透明背景。我如何才能将其切出形状?

var mask:Loader = new Loader();
mask.load(new URLRequest("mask.png"));
var pattern:Loader = new Loader();
pattern.load(new URLRequest("pattern.png"));

pattern.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

function loadComplete(e:Event):void {
addChild(pattern);
addChild(mask);
pattern.mask = mask;
}

1 个答案:

答案 0 :(得分:0)

您的代码看起来正确。 DisplayObject的mask属性也需要DisplayObject。但是,尝试做一些事情,找出麻烦所在:

  1. 您只有一个模式pattern.png的侦听器。但是您必须确定,mask.png也已经加载。
  2. 尽管加载程序也是DisplayObject-尝试从加载程序获取内容作为遮罩,然后尝试使用它。

* Ah,还有一件事。您必须首先添加侦听器,然后再尝试加载。