Actionscript 3.0 Sprite Вращение вокруг центральной ошибки - PullRequest
0 голосов
/ 06 июля 2011

Я нашел этот скрипт в сети, чтобы вращать спрайт вокруг его центральной точки, но при его использовании я получаю две ошибки. 1084: синтаксическая ошибка: ожидание идентификатора перед левой парой. 1084: Синтаксическая ошибка: ожидание правой пары перед левым. Кроме того, вместо angleDegrees я должен указать угол, на который я хочу повернуть спрайт?

var point:Point=new Point(spr_box.x+spr_box.width/2, spr_box.y+spr_box.height/2);
    rotateAroundCenter(spr_box,45);

function rotateAroundCenter (ob:*, angleDegrees) {
    var m:Matrix=ob.transform.matrix;
    m.tx -= point.x;
    m.ty -= point.y;
    m.rotate (angleDegrees*(Math.PI/180));
    m.tx += point.x;
    m.ty += point.y;
    ob.transform.matrix=m;
}

1 Ответ

0 голосов
/ 06 июля 2011

Чтобы избавиться от синтаксических ошибок, измените эту строку:

m.rotate (angleDegrees*(Math.PI/180));

к этому:

m.rotate = (angleDegrees*(Math.PI/180));

Судя по всему, вы должны использовать angleDegrees в качестве угла смещения, который вы хотите для своего Sprite.

Чтобы улучшить эту функцию и упростить ее повторное использование, вы можете переместить объявление point внутри функции.

Примерно так:

function rotateAroundCenter(ob:DisplayObject, angleDegrees:Number) : void {
    var point:Point=new Point(ob.x + ob.width / 2, ob.y + ob.height / 2);

    var m:Matrix = ob.transform.matrix;
    m.tx -= point.x;
    m.ty -= point.y;
    m.rotate = (angleDegrees*(Math.PI/180));
    m.tx += point.x;
    m.ty += point.y;
    ob.transform.matrix = m;
}
...