4

いくつかのガイドラインに合わせたまま、ムービー クリップにテーパリング エフェクトを実装する必要があります。たとえば、私のムービー クリップが次のようになっているとします。

ここに画像の説明を入力

変換後、次のようになります

ここに画像の説明を入力

ムービー クリップの形状が対称のままで、高さが変わらないようにします。上端の長さは変わりません。また、両側で角度を制御できるとよいのですが、最初は上の画像のように 45 度にしたいと思います。

私がこれまでに試したことはこれです

var m3D:Matrix3D = new Matrix3D();
m3D.appendRotation(-45, Vector3D.X_AXIS);
myMC.transform.matrix3D = m3D;

私は長い間それをいじり、前後に翻訳を追加しましたが、成果はありませんでした。これもうまくいかない

var mcX:Number = myMC.x;
var mcY:Number = myMC.y;
var mcW:Number = myMC.width;
var mcH:Number = myMC.height;
m3D.appendTranslation(-(mcX + mcW/2), -mcY, 0);
m3D.appendRotation(-45, Vector3D.X_AXIS);
m3D.appendTranslation(mcX + mcW/2, mcY, 0);

DistortImageクラスは見つかりましたが、ライセンスは非営利目的であり、ムービー クリップではネイティブに動作しないようです。同様のクラスは有望に見えましたが、ソースへのリンクは無効になっています。

4

2 に答える 2

0

事前に翻訳を適切に追加してから、翻訳後を適切に追加する必要があります。たとえば、(cx、cy) で選択した中心点 (回転を行う必要がある) の場合、翻訳を追加して-cx,-cyから回転させてから逆方向に翻訳します。

m3D.appendTranslation(-1*cx,-1*cy,0);
m3D.appendRotation(-45, Vector3D.X_AXIS);
m3D.appendTranslation(cx,cy,0);
于 2013-03-20T12:38:57.483 に答える