PDA

Просмотр полной версии : Скорость вращения (колесо обозрения)


PRO100Light
24.09.2013, 13:18
Привет! Прошу помощи) Помогите составить формулу, скорости вращения колеса, что бы соответствовала скорости вращения нескольких объектов по кругу (кабинок). Вообще ума не приложу.
var speed:Number = 0.008;
var centerX:Number = koleso._x;
var centerY:Number = koleso._y;
var radius:Number = koleso._height/2;
var numOfKabins:Number = 12;

//this.onEnterFrame = mover;


for(var i=0;i<numOfKabins;i++)
{
var t = this.attachMovie("kabina","bt"+i,i+1);
t.angle = i * ((Math.PI*2)/numOfKabins);
t.onEnterFrame = mover;
}

function mover()
{
this._x = Math.cos(this.angle) * radius + centerX;
trace(Math.cos(this.angle) )
this._y =Math.sin(this.angle) * radius + centerY;
this.angle += this._parent.speed;

koleso._rotation += 4.75*speed; // ???????????
}


this.onMouseMove = function()
{
speed = (this._xmouse-centerX)/9000;
}
Сейчас само колесо со временем отстает... или спешит...

Sergey_A
24.09.2013, 16:01
То, что погрешность накапливается - ИМХО, естественно.
Я бы предложил в том же цикле, в котором мувики вставляются, запоминать их координаты (можно - в самих мувиках), и после каждого полного оборота колеса заново присваивать их мувикам - кабинам.

Tails
24.09.2013, 16:30
1. Создайте для каждой кабинки экземпляр класса Point - указывающий позицию привязки в системе координат колеса, то-есть "внутри него".
2. Затем, каждый кадр, для каждой кабинки - получайте координаты из этих точек. Переводя их из системы координат колеса, в систему координат кабинок. Метод для перевода - localToGlobal у любого дисплей объекта.

dark256
25.09.2013, 13:21
Мегакод:

WH.onEnterFrame = function(){
this._rotation += 0.5
this.кабинка._rotation = -this._rotation
}