PDA

Просмотр полной версии : Хитрое вращение клипа


Cloo
27.12.2005, 17:49
Пытаюсь сделать программное прямолинейное перемещение мувика с одновременным вращением.
Причём вращение должно быть вокруг одной постоянной точки, стоящей на месте, а на деле центр вращения с перемещением клипа тоже меняет своё положение.
Так вот можно ли как-то центр вращения менять программно, чтобы в итоге он всегда оставался на одном месте?

Поиском нашёл что-то про local to global, но как это применить в данном случае?..

KidsKilla
27.12.2005, 17:54
можешь вручную нарисовать чего ты ты хзочешь, а то соовсем не понятно...

Badim
27.12.2005, 18:03
а ты перемещай обект(mc) внутри вращаемого объекта.
типа:
в parent_mc объекте есть child_mc.
//
this.onEnterFrame=function() {
parent_mc._rotation++;
parent_mc.child_mc._x++;}
//
в итоге получиться что обект вращаеться, и уплывает от центра

Iv
27.12.2005, 21:21
this.createEmptyMovieClip("square_mc", 0)
this.square_mc.beginFill(0xCCCCCC, 100)
this.square_mc.lineTo(100, 0)
this.square_mc.lineTo(100, 100)
this.square_mc.lineTo(0, 100)
this.square_mc.endFill()
this.square_mc._x = this.square_mc._y = 100
this.square_mc.onEnterFrame = function() {
this.setRotation(this._rotation+1, this.x_center, this.y_center)
// this._x ++
}
this.square_mc.setRotation = function (rotation, x_center, y_center) {
var old_obj = {x:x_center, y:y_center}
var new_obj = {x:x_center, y:y_center}
this.localToGlobal(old_obj)
this._rotation = rotation
this.localToGlobal(new_obj)
this._x +=old_obj.x-new_obj.x
this._y +=old_obj.y-new_obj.y
}
this.square_mc.onPress = function () {
this.x_center = this._xmouse
this.y_center = this._ymouse
}

Cloo
27.12.2005, 22:50
Мм.. да, немного непонятно.. вращение там вторично, главным образом объект перемещается прямолинейно..
В общем, надо показывать.. попозже будет..

KUZEN
27.12.2005, 22:51
Мм.. да, немного непонятно.. вращение там вторично, главным образом объект перемещается прямолинейно..
В общем, надо показывать.. попозже будет..
Пример показывает использование localToGlobal, а Вы уж двигаейте куда хотете ...

Cloo
28.12.2005, 10:09
Да. Наверное, этого достаточно, но соображалка перед Новым Годом плохо работает :(
...
В архиве fla-файл (MX 2004). Шкала, которая движется вертикально сверху вниз, поворачивается и уходит влево, поскольку центр вращения находится на белой разграничивающей линии, которая видна в начале анимации. А нужно, чтобы цифры на шкале (10...50) находились посередине области прибора...

Жень Шень
28.12.2005, 11:41
Привет!
Если честно, то небыло времени просмотреть твой исходник.
Но, посмотри, может мой подойдет?
Правда, координаты смещения у меня вручную задаються (это поправимо :) ). А вот центр вращения постоянен.

Cloo
28.12.2005, 12:35
Спасибо всем большое. Наиболее простым и подходящим в данной ситуации оказался способ Бадима :)
По сути всё просто, но сам не додумался, почему-то... :)