【问题标题】:How to use a mask in actionscript 3.0?如何在 actionscript 3.0 中使用掩码?
【发布时间】:2019-10-21 20:48:42
【问题描述】:

我想用另一个图像- mask.png 来掩盖 png 图像 pattern.png,但它根本不起作用,我找不到原因。不是遮盖图像,而是遮罩消失,图案保持原样。

我尝试制作一个电影剪辑,例如绘制一个圆圈并将其用作掩码而不是 mask.png,它工作得很好。是因为你不能使用加载器对象作为掩码吗?如何让它发挥作用?

编辑:在将 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;
}

【问题讨论】:

    标签: actionscript-3 actionscript flashdevelop


    【解决方案1】:

    您的代码看起来正确。 DisplayObject 的 mask 属性也需要 DisplayObject。但尽量少做点事,找麻烦:

    1. pattern.png 只有一个监听器。但是你必须确定,那个 mask.png 也已经加载了。
    2. 尽管 Loader 也是 DisplayObject - 尝试从 loader 获取内容以获取掩码,然后尝试使用它。

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

    【讨论】:

    • 我尝试了所有这些,它保持不变。但是在将 mask.png 的大小更改为小于图案之后,我意识到它实际上确实做了一些工作,但是发生的事情不是将图案切割成我在 png 文件中绘制的形状,它只是将其切割成整个文件的形状,例如,它也计算矩形透明背景。你知道如何解决这个问题吗?
    • @happykidney 如果我没记错的话,掩码和掩码对象都必须将 .cacheAsBitmap 属性设置为 true,然后还采用 alpha-channel考虑到,不仅是形状(图像对象显然是矩形):help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/…
    猜你喜欢
    • 1970-01-01
    • 2013-05-27
    • 2013-12-27
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多