2009-06-18 16 views
2

こんにちは私はmovieclipに翻訳回転のスケーリングを使用する必要があるactionscript 3に取り組んでいます。私は回転とスケーリングが適切に機能していますが、翻訳を処理するときに変換によって原点の外にオブジェクトが移動するので、オブジェクトを回転させたいときに、オブジェクトはもはや予想どおりに回転しません。原文を翻訳しながらムービークリップを翻訳するように翻訳を実装する最良の方法は何ですか?アクションスクリプト変換の変換

最後のこと.. movieclip.scaleとmovieclip.transform.scale関数の違いは何ですか? movieclip.scaleを使用している場合でも、movieclip.scaleからmovieclip.transform.matrixを取得できますか

答えて

2

回転とスケールを含むすべての行列変換は、座標系の原点に対して有効になります。クリップは存続します。他のポイントの周りを回転または拡大したい場合は、クリップをそのポイントに変換し、変換して翻訳し直す​​必要があります。言い換えれば、この:

clip.rotation = 30; 

は、これと同じことを行います

var tx:Number = clip.x; 
var ty:Number = clip.y; 
var m:Matrix = clip.transform.matrix; 
m.translate(-tx, -ty); 
m.rotate(30*Math.PI/180); 
m.translate(tx, ty); 
clip.transform.matrix = m; 

それはスケール変換とまったく同じように動作します。

その他の質問では、MovieClip.scaleX/YとMatrix.scaleの違いは回転とまったく同じです。いずれの方法でも回転を適用できますが、組み込みのMCプロパティではクリップの登録ポイント、およびマトリックス関数は原点を基準にしています。クリップの登録ポイントが(0,0)にある場合、クリップの登録ポイントは同じになります。