![]() |
Вращающийся регулятор громкости. Как?
Как можно сделать регулятор громкости(или чевото еще), который можно крутить, вращая зажатой мышкой по кругу(вроде как в некоторых скинах для пятого Винампа)?
Подскажите... :confused: |
Вешаешь на регулятор onPress, с момента события отслеживаешь перемещение курсора по вертикали, соответстенно поворачиваешь регулятор, при событии onRelease прекращаешь слежение.
|
Вложений: 1
Цитата:
|
Расчитывай угол, и строй касательную. Я не особо силён в математике, но вроде так
|
Простая геометрия !!!!
у тебя есть треугольник прямоугольный, и 2 катета (положение мыши относительно твоего центра регулятора по осям х и у) ну а там курс геометрии класс 6-7 %)) типа " тангенс прилежащего угла равен прилежащему катету деленному на противолежащий" (хотя может и наоборот противо лежащий на прилежащий) %)) из этого находишь угол на который нужно повернуть регулятор и поворачиваешь его! |
надеюсь, вопрос не из серии "сделайте всё за меня".
есть чудо-функция 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); |
Цитата:
|
Катафалкеру плюс за флейм, автору -- устное предупрждение за ошибку разделом.
|
Вложений: 1
Привет, Nox Noctis. А я так и понял, что этот вопрос из серии "сделайте всё за меня". Поэтому в таком же духе и отвечаю (благо, у меня завалялся старенький исходник).:)
З.Ы. Antares, я смотрю, ты постепенно вводишь здесь, на форуме казарменную дисциплину? Раньше здесь такого не наблюдалось. Ну, что ты, ее Богу, так церберствуешь и сатрапничаешь? Добрее будь. :) |
Сержвизард, ничего, пусть терпят.
Раньше такое число 15тилетних талантов, не умеющих читать, не набегало... |
Вложений: 2
Наконецто я сделал, его.
Только были проблемы с том, как сделать так, чтобы значение громкости начиналось с левого нижнего положения. Не найдя ничего более простого решил использовать простую арифметику: Код:
if (_root.rotaT<135) {Код:
if (angl<315 && angl>=270) { |
Antares, да брось ты..., и раньше молодые в изрядных количествах набегали. И бузили, и поругивались, и беспорядок нарушали. :) Форумы для того и существуют. А я давно уже заметил, что чем свободнее (до определенных пределов) форум, тем он живее и интереснее. Вспомни сам, когда ты пришел на флэшер, - какой он был? Сказка! Спроси у Nox(a), сколько он за свое модераторствование поставил плюсов, скольких забанил? Я такого припомнить не могу.
Плюсами и баннами культуру общения на форуме не выстроишь. -Только личным примером. :) З.Ы. С наступающим Днем Солдата! |
У меня другое мнение на этот счет. Примером некоторым не помогает. А как набирут 2 плюса -- сразу умнеют на глазах.
|
| Часовой пояс GMT +4, время: 04:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.