Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вращающийся регулятор громкости. Как? (http://www.flasher.ru/forum/showthread.php?t=75936)

E.Q. 22.02.2006 20:35

Вращающийся регулятор громкости. Как?
 
Как можно сделать регулятор громкости(или чевото еще), который можно крутить, вращая зажатой мышкой по кругу(вроде как в некоторых скинах для пятого Винампа)?

Подскажите... :confused:

Homo Sapiens 22.02.2006 21:01

Вешаешь на регулятор onPress, с момента события отслеживаешь перемещение курсора по вертикали, соответстенно поворачиваешь регулятор, при событии onRelease прекращаешь слежение.

E.Q. 22.02.2006 21:12

Вложений: 1
Цитата:

Сообщение от Homo Sapiens
отслеживаешь перемещение курсора по вертикали

Это вобщем понятно как сделать, но как заставить его крутится при перемещении мышки не по какойто оси, а вокруг нее(оси), т.е. перемещая мышь по окружности, так чтобы маркер регулятора был повернут к курсору мыши?

Homo Sapiens 22.02.2006 21:30

Расчитывай угол, и строй касательную. Я не особо силён в математике, но вроде так

__i 22.02.2006 21:37

Простая геометрия !!!!

у тебя есть треугольник прямоугольный, и 2 катета (положение мыши относительно твоего центра регулятора по осям х и у) ну а там курс геометрии класс 6-7 %))

типа " тангенс прилежащего угла равен прилежащему катету деленному на противолежащий" (хотя может и наоборот противо лежащий на прилежащий) %))

из этого находишь угол на который нужно повернуть регулятор и поворачиваешь его!

Nox Noctis 23.02.2006 00:37

надеюсь, вопрос не из серии "сделайте всё за меня".

есть чудо-функция Math.atan2(y, x), которая возвращает арктангенс угла наклона вектора, определенного указанными координатами (y, x), относительно положительного направления оси абсцисс.

более того, эта функция возвращает значения
от -П радиан до +П радиан, тогда как обычный арктангенс Math.atan возвращает значения
от -П/2 до +П/2, как и положено одноименной математической фунции.

короче.
при помощи Math.atan2 ты можешь определить, под каким углом сейчас находится указатель мыши относительно какой-то точки.

допустим, у тебя есть клип с регулятором clip_mc, и его "нулевое" положение - горизонтально направо. тогда угол, на который нужно повернуть регулятор, чтобы он "смотрел" на указатель мыши равен:
Math.atan2(clip_mc._parent._ymouse-clip_mc._y, clip_mc._parent._xmouse-clip_mc._x);

K.A.T.A.F.A.L.K.E.R 23.02.2006 01:24

Цитата:

Сообщение от __i
тангенс прилежащего угла

Гы. Люблю математический юмор :D

Antares 23.02.2006 01:55

Катафалкеру плюс за флейм, автору -- устное предупрждение за ошибку разделом.

sergwizard 23.02.2006 03:24

Вложений: 1
Привет, Nox Noctis. А я так и понял, что этот вопрос из серии "сделайте всё за меня". Поэтому в таком же духе и отвечаю (благо, у меня завалялся старенький исходник).:)
З.Ы. Antares, я смотрю, ты постепенно вводишь здесь, на форуме казарменную дисциплину? Раньше здесь такого не наблюдалось. Ну, что ты, ее Богу, так церберствуешь и сатрапничаешь? Добрее будь. :)

Antares 23.02.2006 03:50

Сержвизард, ничего, пусть терпят.

Раньше такое число 15тилетних талантов, не умеющих читать, не набегало...

E.Q. 23.02.2006 04:06

Вложений: 2
Наконецто я сделал, его.

Только были проблемы с том, как сделать так, чтобы значение громкости начиналось с левого нижнего положения. Не найдя ничего более простого решил использовать простую арифметику:
Код:

if (_root.rotaT<135) {
        _root.rota = _root.rotaT+225;
} else {
        _root.rota = _root.rotaT-135;
}

Теми же if'ами отключил поворот за пределы шкалы:
Код:

if (angl<315 && angl>=270) {
        angl = 315;
}
if (angl<270 && angl>225) {
        angl = 225;
}

Спасибо всем кто помог. :)

sergwizard 23.02.2006 04:48

Antares, да брось ты..., и раньше молодые в изрядных количествах набегали. И бузили, и поругивались, и беспорядок нарушали. :) Форумы для того и существуют. А я давно уже заметил, что чем свободнее (до определенных пределов) форум, тем он живее и интереснее. Вспомни сам, когда ты пришел на флэшер, - какой он был? Сказка! Спроси у Nox(a), сколько он за свое модераторствование поставил плюсов, скольких забанил? Я такого припомнить не могу.
Плюсами и баннами культуру общения на форуме не выстроишь. -Только личным примером. :)
З.Ы. С наступающим Днем Солдата!

Antares 23.02.2006 05:25

У меня другое мнение на этот счет. Примером некоторым не помогает. А как набирут 2 плюса -- сразу умнеют на глазах.


Часовой пояс GMT +4, время: 04:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.