1

我有以下问题:我在一个组上绘制一个形状,用作蒙版。然后,我使用 Rotate3D 在 x、y、z 中旋转图像,并将组用作图像的蒙版,但结果不是我想要的,因为一旦组成为图像的蒙版,它也会获得其旋转。我想要实现的是根据我绘制的形状获得旋转图像的一部分。如何在不旋转面膜的情况下使用面膜?或者这可以通过其他方式完成吗?

这是代码:

    grpMask = new Group();
    g = grpMask.graphics;
    g.lineStyle(0, 0x00FF00);
    g.moveTo(points[0].x, points[0].y);
    g.beginFill(0x00FF00, .3);
    for (var i:int; i < points.length - 1; i++)
    {
       g.lineTo(points[i + 1].x, points[i + 1].y);
    }
    g.endFill();
    grpCanvas.addElement(grpMask);

然后我设置imgTarget.mask = grpMask. 对于 imgTarget,已经应用了几个 Rotate3D 效果,不幸的是这些效果传递给了蒙版。

4

1 回答 1

0

一种解决方案是将要旋转的对象添加到容器类中,例如 aSprite或 a Group。然后将蒙版应用于容器,而不是旋转的对象:

var container:Group = new Group();
container.addElement(roatatedObject);
container.mask = maskObject;
container.addElement(maskObject);

或者

var container:Sprite = new Sprite();
container.addChild(rotatedObject);
container.mask = maskObject;
container.addChild(maskObject);
于 2013-07-03T18:28:56.690 回答