Reijii
19.07.2006, 14:11
Доброго дня всем,
Помогите с проблемой пожалуйста, не получается повернуть загружаемую картинку относительно ее центра (таким же способом, все вращалось нормально во Flash 8 / AS 2), вернее как сейчас оно вращает, но координаты сбиваются.
<mx:Rotation /> который есть в MXML и которому можно задать OriginX, OriginY, не хочет вращать объекты у которых нет метода move :(
Вот код который вставляю в функцию loadComplete на событие Event.COMPLETE, для Loader.
var data:BitmapData = new BitmapData(evt.target.loader.content.bitmapData.width, evt.target.loader.content.bitmapData.height, true, 0x00FFFFFF);
//
data.draw(evt.target.loader.content.bitmapData, null, null, null, null, true);
//
var bitmap:Bitmap = new Bitmap(data, "auto", true);
//
currentTarget.target.addChild(bitmap);
//
var scaleDX:Number = 1;
var scaleDY:Number = 1;
//
if (width != undefined && height != undefined)
{
scaleDX = width / data.width;;
scaleDY = height / data.height;
}
//
bitmap.scaleX = scaleDX;
bitmap.scaleY = scaleDY;
//
if (x != undefined && y != undefined)
{
bitmap.x = x - (data.width * scaleDX) / 2;
bitmap.y = y - (data.height * scaleDY) / 2;
}
//
Bitmap.prototype.rot = function (angle:Number, dx:Number, dy:Number):void
{
var radAngle = angle * (Math.PI / 180);
var x = Math.cos (radAngle) * dx - Math.sin (radAngle) * dy;
var y = Math.sin (radAngle) * dx + Math.cos (radAngle) * dy;
this.rotation = angle;
trace(dx, x, dy, y, dx - x, dy - y);
this.x = dx - x;
this.y = dy - y;
};
//
if (rotation != undefined)
{
Object(bitmap).rot(rotation, bitmap.x + data.width * scaleDX / 2, bitmap.y + data.height * scaleDY / 2);
}
Помогите с проблемой пожалуйста, не получается повернуть загружаемую картинку относительно ее центра (таким же способом, все вращалось нормально во Flash 8 / AS 2), вернее как сейчас оно вращает, но координаты сбиваются.
<mx:Rotation /> который есть в MXML и которому можно задать OriginX, OriginY, не хочет вращать объекты у которых нет метода move :(
Вот код который вставляю в функцию loadComplete на событие Event.COMPLETE, для Loader.
var data:BitmapData = new BitmapData(evt.target.loader.content.bitmapData.width, evt.target.loader.content.bitmapData.height, true, 0x00FFFFFF);
//
data.draw(evt.target.loader.content.bitmapData, null, null, null, null, true);
//
var bitmap:Bitmap = new Bitmap(data, "auto", true);
//
currentTarget.target.addChild(bitmap);
//
var scaleDX:Number = 1;
var scaleDY:Number = 1;
//
if (width != undefined && height != undefined)
{
scaleDX = width / data.width;;
scaleDY = height / data.height;
}
//
bitmap.scaleX = scaleDX;
bitmap.scaleY = scaleDY;
//
if (x != undefined && y != undefined)
{
bitmap.x = x - (data.width * scaleDX) / 2;
bitmap.y = y - (data.height * scaleDY) / 2;
}
//
Bitmap.prototype.rot = function (angle:Number, dx:Number, dy:Number):void
{
var radAngle = angle * (Math.PI / 180);
var x = Math.cos (radAngle) * dx - Math.sin (radAngle) * dy;
var y = Math.sin (radAngle) * dx + Math.cos (radAngle) * dy;
this.rotation = angle;
trace(dx, x, dy, y, dx - x, dy - y);
this.x = dx - x;
this.y = dy - y;
};
//
if (rotation != undefined)
{
Object(bitmap).rot(rotation, bitmap.x + data.width * scaleDX / 2, bitmap.y + data.height * scaleDY / 2);
}