![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Добрый день, флэшеры.
Я тут делаю такую штуку. Суть в том, что когда проводишь мышью по области вокруг крестика, он вращается. И чем бьыстрее проводишь, тем быстрее он вращается. Проблема в том, что скорость вращения напрямую зависит от скорости движения указателя, но я бы хотел сделать начальную скорость вращения креста быстрее раза в два-три, чем движение мыши. Простое умножение на определенную величину(rotMultiply) дает очень странный эффект "запаздывания" или вообще не влияет на скорость вращения. Без умножения все работает нормлаьно, но скрость мала. Вот ссылка на мувик нормальный: www.ambuddy.net/use/cross_normal.swf Вот ссылка на мувик паранормальный: www.ambuddy.net/use/cross_paranormal.swf Вот код: // Дополнительное усилие
rotMultiply = 5;
// Скорость затухания
rotDecay = 0.95;
// Указатель в зоне воздействия
//isOver = false;
mouseX1 = _xmouse;
// Вращаем крестик
aCross.onEnterFrame = rotateFunc;
// Если мышь задела область влияния запускаем поворот, т.е. начинаем считать поворот
aCross.onMouseMove = ifInvolved;
// ======================
// Functions
// ======================
function ifInvolved() {
if(isOver==false && _xmouse > this._x-50 && _xmouse < this._x+50 && _ymouse > this._y-50 && _ymouse < this._y+50) {
mouseOffset = mouseX1 - _xmouse; // считаем относительно пред. значения
mouseX1 = _xmouse; // запоминаем предыдущее значение
rotOffset = mouseOffset;
rotOffset = rotOffset*rotMultiply;
}
}
function rotateFunc() {
rotOffset = rotOffset * rotDecay;
this._rotation += rotOffset;
// Если угол поворота уже слишком мал, останавливаем
if(Math.abs(rotOffset)<=1) {
rotOffset = 0;
this._rotation = Math.ceil(this._rotation);
// Если крест не встал прямо, докручиваем его
rAngle = Math.abs(this._rotation);
if(rAngle > 360) rAngle = rAngle - Math.floor(rAngle/360)*360; // убираем целое число оборотов
if(rAngle != 0 && rAngle != 90 && rAngle != 180 && rAngle != 270 && rAngle != 360) {
this._rotation = (mouseOffset>0) ? this._rotation+1 : this._rotation-1; // вперед или назад
}
}
}
Последний раз редактировалось ambuddy; 09.04.2007 в 17:46. |
|
|||||
|
А здаешь почему кажется, будто колеса у машины движутся назд, когда она быстро едет?
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
нууу, очень часто замечал, но физику этого обмана не знаю...
Т.е. хочешь сказать, крест все-таки крутится быстрее и при этом так как надо, просто я этого не замечаю? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
|
|
|||||
|
Цитата:
а так то их четыре, так что 45-90 градусов
__________________
wewriters.ru писательский форум блог |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Хорошо.
Но почему, когда двигаешь мышкой медленно, то скорость вращения и в первом и во втором случае почти одинакова, хотя должна разниться в пять раз??!! |
|
|||||
|
лично я бы сделал так:
Если есть сомнения протестируй - поставь 50, например, по-моему все в порядке.
__________________
wewriters.ru писательский форум блог Последний раз редактировалось techno; 09.04.2007 в 21:58. |
|
|||||
|
еще совет нарисуй что-нибудь не со спицами, или неповторяющиеся предметы , и посмотри
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|