Flashドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > Matrix (flash.geom.Matrix) > rotate (Matrix.rotate メソッド) | |||
public rotate(angle:Number) : Void
回転変換を適用する場合に現在のマトリックスを使用できるように、そのマトリックスに値を設定します。
rotate() メソッドは、Matrix オブジェクトの a プロパティと d プロパティを変更します。マトリックス表記の場合、これは次のようになります。
使用できるバージョン : ActionScript 1.0、Flash Player 8
angle:Number - 回転角度 (ラジアン単位)。
次の例では、rotate() メソッドを使って rectangleMc を時計方向に 30 度回転します。myMatrix を rectangleMc に適用すると、_x 値がリセットされるので、手動で 100 に設定し直します。
import flash.geom.Matrix;
import flash.geom.Transform;
var myMatrix:Matrix = new Matrix();
trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0)
var degrees:Number = 30;
var radians:Number = (degrees/180) Math.PI;
myMatrix.rotate(radians);
trace(myMatrix.toString()); // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=0, ty=0)
var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000);
trace(rectangleMc._x); // 0
rectangleMc._x = 100;
trace(rectangleMc._x); // 100
var rectangleTrans:Transform = new Transform(rectangleMc);
rectangleTrans.matrix = myMatrix;
trace(rectangleMc._x); // 0
rectangleMc._x = 100;
trace(rectangleMc._x); // 100
function createRectangle(width:Number, height:Number, color:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
mc.beginFill(color);
mc.lineTo(0, height);
mc.lineTo(width, height);
mc.lineTo(width, 0);
mc.lineTo(0, 0);
return mc;
}
上の例では、MovieClip オブジェクトの _x プロパティを使用して rectangleMc の位置を変更しています。通常、マトリックスポジショニングを行う場合、ポジショニング手法を混在させることは悪いシンタックスであると考えられています。上の例を良いシンタックスで記述する場合は、平行移動マトリックスを myMatrix に連結することで rectangleMc の水平方向の位置を変更します。次の例で、それを示します。
import flash.geom.Matrix;
import flash.geom.Transform;
var myMatrix:Matrix = new Matrix();
trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0)
var degrees:Number = 30;
var radians:Number = (degrees/180) Math.PI;
myMatrix.rotate(radians);
trace(myMatrix.toString()); // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=0, ty=0)
var translateMatrix:Matrix = new Matrix();
translateMatrix.translate(100, 0);
myMatrix.concat(translateMatrix);
trace(myMatrix.toString()); // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=100, ty=0)
var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000);
trace(rectangleMc._x); // 0
rectangleMc._x = 100;
trace(rectangleMc._x); // 100
var rectangleTrans:Transform = new Transform(rectangleMc);
rectangleTrans.matrix = myMatrix;
trace(rectangleMc._x); // 100
function createRectangle(width:Number, height:Number, color:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
mc.beginFill(color);
mc.lineTo(0, height);
mc.lineTo(width, height);
mc.lineTo(width, 0);
mc.lineTo(0, 0);
return mc;
}
RSS フィード | このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/8_jp/main/00002402.html
Comments
Fumio Nonaka が Dec 14, 2005 の 7:03 AM に追加: