应用于旋转对象时,蒙版会自动旋转

时间:2013-04-02 03:00:56

标签: flex masking rotatetransform

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

以下是代码:

    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效果,不幸的是传递给了面具。

1 个答案:

答案 0 :(得分:0)

一种解决方案是将正在旋转的对象添加到容器类,如SpriteGroup。然后将蒙版应用于容器,而不是旋转的对象:

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);