Цитата:
import flash.geom.Matrix;
createRectangle = function (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;
};
var rectangleMc:MovieClip = createRectangle(120, 180, 0xFF0000);
// set Matrix
var MyMatrix = rectangleMc.transform.matrix
MyMatrix.d = 2;
rectangleMc.transform.matrix = MyMatrix;
//
rectangleMc.rotateSimple = function(angle:Number) {
var matrix:Matrix = this.transform.matrix;
matrix.identity();
//
this.transform.matrix = matrix;
this._rotation = angle;
};
rectangleMc.rotateMatrix = function(angle:Number) {
var matrix:Matrix = this.transform.matrix;
matrix.identity();
matrix.rotate(angle*Math.PI/180);
//
this.transform.matrix = matrix;
this._rotation = 0;
};
//
this.onMouseDown = function() {
rectangleMc.rotateSimple(45);
};
this.onMouseUp = function() {
rectangleMc.rotateMatrix(0);
};
|
запусти этот код и паймощ што исползавать this._rotation = 0; нелзя
нужна вычеслит угал и развернут matrix
MyMatrix.rotate(degrees)
matrix rotate != _rotation
MovieClip._rotation = 0

Код:
import flash.geom.Matrix;
createRectangle = function (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;
};
var rectangleMc:MovieClip = createRectangle(120, 180, 0xFF0000);
// set Matrix rotate
var MyMatrix = rectangleMc.transform.matrix
MyMatrix.rotate(0.50);
MyMatrix.tx = 200;
rectangleMc.transform.matrix = MyMatrix;
trace(rectangleMc._rotation) // 0
// set Matrix height
var MyMatrix = rectangleMc.transform.matrix
MyMatrix.d = 2;
rectangleMc.transform.matrix = MyMatrix;
// закаментируй линию и увидеш што matrix абекта анулируета при исползавание _rotation
rectangleMc._rotation = 0;
этот пример показывает што исползавать ._rotation нелзя в работе с matrix што возвращяет нас к праблеме как вычеслит угал при каторам был разворнут абект спомащю matrix.rotate() и как развернут ево обратно с тем же matrix.rotate()