Просмотр полной версии : Хитрое вращение клипа
Пытаюсь сделать программное прямолинейное перемещение мувика с одновременным вращением.
Причём вращение должно быть вокруг одной постоянной точки, стоящей на месте, а на деле центр вращения с перемещением клипа тоже меняет своё положение.
Так вот можно ли как-то центр вращения менять программно, чтобы в итоге он всегда оставался на одном месте?
Поиском нашёл что-то про local to global, но как это применить в данном случае?..
KidsKilla
27.12.2005, 17:54
можешь вручную нарисовать чего ты ты хзочешь, а то соовсем не понятно...
а ты перемещай обект(mc) внутри вращаемого объекта.
типа:
в parent_mc объекте есть child_mc.
//
this.onEnterFrame=function() {
parent_mc._rotation++;
parent_mc.child_mc._x++;}
//
в итоге получиться что обект вращаеться, и уплывает от центра
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
}
Мм.. да, немного непонятно.. вращение там вторично, главным образом объект перемещается прямолинейно..
В общем, надо показывать.. попозже будет..
Мм.. да, немного непонятно.. вращение там вторично, главным образом объект перемещается прямолинейно..
В общем, надо показывать.. попозже будет..
Пример показывает использование localToGlobal, а Вы уж двигаейте куда хотете ...
Да. Наверное, этого достаточно, но соображалка перед Новым Годом плохо работает :(
...
В архиве fla-файл (MX 2004). Шкала, которая движется вертикально сверху вниз, поворачивается и уходит влево, поскольку центр вращения находится на белой разграничивающей линии, которая видна в начале анимации. А нужно, чтобы цифры на шкале (10...50) находились посередине области прибора...
Жень Шень
28.12.2005, 11:41
Привет!
Если честно, то небыло времени просмотреть твой исходник.
Но, посмотри, может мой подойдет?
Правда, координаты смещения у меня вручную задаються (это поправимо :) ). А вот центр вращения постоянен.
Спасибо всем большое. Наиболее простым и подходящим в данной ситуации оказался способ Бадима :)
По сути всё просто, но сам не додумался, почему-то... :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.