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

1 つの解決策は、回転するオブジェクトをSpriteやなどのコンテナ クラスに追加すること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 に答える