Просмотр полной версии : Полукруглое меню
Добрый день!
Подскажите, пожалуйста, как сделать простенькую менюшку как на сайте http://cyclog.wise-graphics.net такую полукруглую.
Может кто-нибудь выложет исходник - буду благодарен. Или хотя бы методы поподробней. Но судя по всему тут немного делать, знать бы как.
Спрашивал в ветке "Для начинающих", но у меня не получилось сделать так как мне ответили. Мне кажется, что для специалистов это несложно. Ну не получается у меня разобраться. Буду благодарен за любую помощь.
Спасибо.
Создаешь круг в нем делаешь кнопки. Создаешь маску чтоб круг стал полукругом. Функция которая отвечяет за вращение.
function round(speed){
mc._rotation+=speed;
}
Далее будем проверят растояние от курсора до крайних точек.
mc.onRollOver=function(){
var speed=10*((_ymouse-mc._y)/(mc._height/2));
timer=setInterval(round,10,speed);
}
mc.onRollOut=function(){
clearInterval(timer);
}
Не работает! Точнее не совсем... Так мне уже советовали. Когда курсор находится на мувике он крутится только в одну сторону. Т.е. нельзя изменить направление движения. Так как же все-таки сделать правильно?
DarkLight
14.08.2006, 19:28
Ставишь невидимые клипы в левой и правой части и ставишь обработчики на них - у одного +=speed , у другого -=speed
Не получается... блин. Исправьте пожалуйста мой файлик, который выше. Все равно не получается также как на http://cyclog.wise-graphics.net
DarkLight
15.08.2006, 14:36
14980
...пока с одной скоростью...
Считать там надо не разницу у, а расстояние от центра круга, это уже легко...
Клипы _1 и _2 подгоняешь по нужным зонам, делаешь полностью прозрачными - и готово
Если не в ту сторону крутится - поменяй 5 и -5 местами
CCCPirate
15.08.2006, 14:48
смотри, хошь доделывай:
14981
удачи!
DarkLight
15.08.2006, 15:00
Исправленный вариант:
14982
Спасибо большое вам ребята! DarkLight и CCCPirate - спасибо! Сейчас буду разбираться.
Фак... только теперь под прозрачными мувиками не работают кнопки на круге... я наверно совсем туп...
DarkLight
15.08.2006, 16:40
Нужно положить прозрачные клипы под круг (слой в самый низ, но маска на него не должна действовать) - и все будет ОК
Че-то забыл учесть наличие кнопок)))
Неа...все равно... вот посмотри...
DarkLight
15.08.2006, 17:04
А что все равно? На кнопках нет кода...А как только я добавляю туда код - все работает...
CCCPirate
15.08.2006, 17:26
Фак... только теперь под прозрачными мувиками не работают кнопки на круге... я наверно совсем туп...
А ты как хотел? Событие он реализ - закрывает событие для нижележащи клипов, я просто отталкивался от твоег исходника, теперь я сделал по своему на:
сорри не то приаттачил, бери этот :14987
А что все равно? На кнопках нет кода...А как только я добавляю туда код - все работает...
У меня нет. Не работает, блин... :((
DarkLight
15.08.2006, 17:50
Я только что открыл несколько Флешеров. Все ОК. Какая версия Флеша? Флеш Плеера?
CCCPirate
15.08.2006, 18:12
:bye: Не парь мозги! Сделай как в моем исходнике выше
DarkLight
15.08.2006, 18:20
гетУРЛ у меня работало, если только браузер уже был открыт...но это уже другой вопрос...поставь трейсы - трейсы работают.
Кнопки у меня работают. Или нужно чтобы при наведении на кнопку круг не переставал вращаться?
Конечно не переставал! Кнопки ведь будут на всем круге, а как к другим добраться... Точно так же как на сайте выше который я указал.
DarkLight
15.08.2006, 18:35
function round(speed):Void {
var speed = _root.dir1*Math.min(10/(_root._2._x-_root._xmouse), 40);
_root.mc._rotation += speed;
}
_root._1.onRollOver = function():Void {
_root.dir1 = 1;
clearInterval(timer);
timer = setInterval(round, 10, speed);
};
_root._2.onRollOver = function():Void {
_root.dir1 = -1;
clearInterval(timer);
timer = setInterval(round, 10, speed);
};
Этот код стабильнее и работает почти как надо
DarkLight
15.08.2006, 18:40
А на том сайте сделано помойму так: в момент отпускания кнопки мыши проверяется, не была ли нажата какая-нибудь кнопка...Если надо, набросаю подобный код
DarkLight
15.08.2006, 18:53
14989
Вот...Обрати внимание, что на том сайте нет состояния овер у кнопок...
Поэтому я наставил стопов там...долго было кадры удалять...зеленый сектор трейсит...
правильный код:
function round(speed):Void {
var speed = _root.dir1*Math.min(10/(_root._2._x-_root._xmouse), 40);
_root.mc._rotation += speed;
}
_root._1.onRelease = rel;
_root._2.onRelease = rel;
_root._1.onRollOver = function():Void {
_root.dir1 = 1;
clearInterval(timer);
timer = setInterval(round, 10, speed);
};
_root._2.onRollOver = function():Void {
_root.dir1 = -1;
clearInterval(timer);
timer = setInterval(round, 10, speed);
};
for (var i in mc.buttons) {
mc.buttons[i].gotoAndStop(1);
}
function rel() {
for (var i in mc.buttons) {
if (mc.buttons[i].hitTest(_root._xmouse, _root._ymouse, true)) {
trace("ss")
mc.buttons[i].onRelease();
}
}
}
mc.buttons._btnx.onRelease = function() {
trace("OK");
};;
Теперь заработало норм(прозрачные клипы снова вверх)
Ну люююди, вы же можете, помогите пожалуйста...
DarkLight
15.08.2006, 20:26
Что случилось? В krugN вставляешь код из предыдущего моего поста вместо того что был, переставляешь слой с прозрачными клипами наверх...После этого зеленая кнопка работает, и все вроде как надо. Чтобы работали другие нужно дать им инстанс неймы и написать онРелизы.
В чем проблема?
Нет, все нормально... я просто не видел что вы на 3 странице пишите... сорри...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.