Форум 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=83699)

Dennix 12.08.2006 17:55

Полукруглое меню
 
Добрый день!

Подскажите, пожалуйста, как сделать простенькую менюшку как на сайте http://cyclog.wise-graphics.net такую полукруглую.

Может кто-нибудь выложет исходник - буду благодарен. Или хотя бы методы поподробней. Но судя по всему тут немного делать, знать бы как.

Спрашивал в ветке "Для начинающих", но у меня не получилось сделать так как мне ответили. Мне кажется, что для специалистов это несложно. Ну не получается у меня разобраться. Буду благодарен за любую помощь.

Спасибо.

BigDan 12.08.2006 21:52

Создаешь круг в нем делаешь кнопки. Создаешь маску чтоб круг стал полукругом. Функция которая отвечяет за вращение.
Код:

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);
}


Dennix 14.08.2006 19:24

Вложений: 1
Не работает! Точнее не совсем... Так мне уже советовали. Когда курсор находится на мувике он крутится только в одну сторону. Т.е. нельзя изменить направление движения. Так как же все-таки сделать правильно?

DarkLight 14.08.2006 19:28

Ставишь невидимые клипы в левой и правой части и ставишь обработчики на них - у одного +=speed , у другого -=speed

Dennix 15.08.2006 14:04

Не получается... блин. Исправьте пожалуйста мой файлик, который выше. Все равно не получается также как на http://cyclog.wise-graphics.net

DarkLight 15.08.2006 14:36

Вложений: 1
Вложение 14980
...пока с одной скоростью...
Считать там надо не разницу у, а расстояние от центра круга, это уже легко...
Клипы _1 и _2 подгоняешь по нужным зонам, делаешь полностью прозрачными - и готово
Если не в ту сторону крутится - поменяй 5 и -5 местами

CCCPirate 15.08.2006 14:48

мой вариант
 
Вложений: 1
смотри, хошь доделывай:

Вложение 14981

удачи!

DarkLight 15.08.2006 15:00

Вложений: 1
Исправленный вариант:
Вложение 14982

Dennix 15.08.2006 16:00

Спасибо большое вам ребята! DarkLight и CCCPirate - спасибо! Сейчас буду разбираться.

Dennix 15.08.2006 16:36

Фак... только теперь под прозрачными мувиками не работают кнопки на круге... я наверно совсем туп...

DarkLight 15.08.2006 16:40

Нужно положить прозрачные клипы под круг (слой в самый низ, но маска на него не должна действовать) - и все будет ОК
Че-то забыл учесть наличие кнопок)))

Dennix 15.08.2006 16:57

Вложений: 1
Неа...все равно... вот посмотри...

DarkLight 15.08.2006 17:04

А что все равно? На кнопках нет кода...А как только я добавляю туда код - все работает...

CCCPirate 15.08.2006 17:26

учится, учится и еще раз...
 
Вложений: 2
Цитата:

Сообщение от Dennix
Фак... только теперь под прозрачными мувиками не работают кнопки на круге... я наверно совсем туп...

А ты как хотел? Событие он реализ - закрывает событие для нижележащи клипов, я просто отталкивался от твоег исходника, теперь я сделал по своему на:

сорри не то приаттачил, бери этот :Вложение 14987

Dennix 15.08.2006 17:40

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

А что все равно? На кнопках нет кода...А как только я добавляю туда код - все работает...
У меня нет. Не работает, блин... :((

DarkLight 15.08.2006 17:50

Я только что открыл несколько Флешеров. Все ОК. Какая версия Флеша? Флеш Плеера?

CCCPirate 15.08.2006 18:12

:bye: Не парь мозги! Сделай как в моем исходнике выше

Dennix 15.08.2006 18:13

Флеш 8 и плеер 8

DarkLight 15.08.2006 18:20

гетУРЛ у меня работало, если только браузер уже был открыт...но это уже другой вопрос...поставь трейсы - трейсы работают.
Кнопки у меня работают. Или нужно чтобы при наведении на кнопку круг не переставал вращаться?

Dennix 15.08.2006 18:22

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

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

Вложений: 1
Вложение 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");
};;

Теперь заработало норм(прозрачные клипы снова вверх)

Dennix 15.08.2006 20:22

Ну люююди, вы же можете, помогите пожалуйста...

DarkLight 15.08.2006 20:26

Что случилось? В krugN вставляешь код из предыдущего моего поста вместо того что был, переставляешь слой с прозрачными клипами наверх...После этого зеленая кнопка работает, и все вроде как надо. Чтобы работали другие нужно дать им инстанс неймы и написать онРелизы.
В чем проблема?

Dennix 15.08.2006 20:48

Нет, все нормально... я просто не видел что вы на 3 странице пишите... сорри...


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

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