1

スプライトに 3 つの正方形 (50 px x 50 px) が隣り合っています。それぞれのピボットは 0, 0 です。 1 番目の正方形 X、Y: 0、0 2 番目の正方形 X、Y: 50、0 3 番目の正方形 X、Y: 100、0 各正方形をその中心線の周りで X 回転させたいと思います。すべての正方形が同じ点の周りではなく、個々の点の周りを回転するように消失点を設定する方法を理解できないようです。どんな助けでも大歓迎です!

4

2 に答える 2

1

基本的に、その効果を得るには、回転中にボックスを移動する必要があります。ボックスの幅/高さとピボット ポイントの位置もわかっているので、計算はそれほど難しくありません。

しかし、なぜそれを自分で計算するのですか?TweenLiteでは、変換を処理するTransformAroundCenterPluginを使用できます。使用することをお勧めします。トゥイーンしたくない場合は、tween-duration (2 番目のパラメーター) を に設定し0ます。

// Activate plugin (should be called once)
TweenPlugin.activate([TransformAroundPointPlugin]);

// Transform your boxes around it's center, does not use the pivot point.
TweenLite.to(this.mcBox1, 1, new TweenLiteVars().transformAroundCenter({rotationX: 50}));
TweenLite.to(this.mcBox2, 1, new TweenLiteVars().transformAroundCenter({rotationX: 190}));
TweenLite.to(this.mcBox3, 0, new TweenLiteVars().transformAroundCenter({rotationX: 5}));        
于 2012-06-11T08:08:19.067 に答える
1

子ムービークリップを回転させて新しい位置に移動することで、子ムービークリップを回転させることができます。子ムービークリップのピボットが登録ポイントと一致する必要があります

次のコードでは、ホルダーはスプライトで、コンテンツは正方形です。(四角形に基点があり、基準点と一致している必要があります)

PS: ホルダーの幅と高さはコンテンツよりも大きくする必要があります。ここでのホルダーは、ある種の大きなコンテナー (ステージなど) であると想定されています。

var holder_Mc:MovieClip = holder_Mc
var content_Mc:MovieClip  = holder_Mc.content_Mc ;
var rotation_val_num:Number = 50// in degrees

        var bnd = holder_Mc.getBounds(MovieClip(holder_Mc.parent)) ;
        var cw:Number = bnd.width ;
        var ch:Number = bnd.height;

        var cx:Number = bnd.x ; 
        var cy:Number = bnd.y ; 
            content_Mc.rotation = rotation_val_num ;


            var bnd2 = holder_Mc.getBounds(MovieClip(holder_Mc.parent)) ;
            var cw2 = bnd2.width ;
            var ch2 = bnd2.height;

            var cx2 = bnd2.x ; 
            var cy2 = bnd2.y ; 



            var dx = Math.abs( holder_Mc.x - cx2 ) ;
            var dy = Math.abs( holder_Mc.y - cy2) ;

            holder_Mc.x  = cx + cw/2 + dx - cw2/2
            holder_Mc.y  = cy + ch/2 + dy - ch2/2
于 2012-06-11T09:46:30.647 に答える