2013-04-02 123 views
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效果,不幸传递到了蒙版。

+0

如何做这样的事情:放置在容器旋转的物体,然后敷面膜来集装箱。 –

+0

这,_did_完成这项工作。谢谢,Sunil D.!请正常回答这个问题,以便我可以将其标记为已回答。 – kvist

回答

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