![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Всем привет! Никак не могу придумать как сделать правильно навигацию на сайте.
У меня есть несколько кнопок при нажатии на одну из них кнопка становится неактивна, если нажимаю другую кнопка неактивная кнопка становится активной а нажатая кнопка активной. Гугл расщедрился сегодня вот таким примером : http://www.republicofcode.com/tutori...isablebuttons/ Это практически то что надо, но хотелось бы весь код хранить в отдельном файле и не прописывать в каждом мувике что нужно включать и выключать. С отключением мувика проблем нет, а вот как включить обратно не придумаю=( Подкиньте идейку пожалуйста. Вот то что сейчас готово: this.fakebtn.onRollOver = over; this.fakebtn.onRollOut = out; this.fakebtn.onPress = down; function over() { gotoAndStop("over"); } function out() { gotoAndStop("up"); txtcontent.textColor = 0xc9cbd0; } function down() { gotoAndStop("down"); txtcontent.textColor = 0x34373f; fakebtn.enabled = false; } Последний раз редактировалось gerasim13; 19.03.2010 в 03:40. |
|
|||||
|
[+4 06.05.14]
|
class nav.MainMenu { var ar = []; var _int; var _iv; var k; public function MainMenu() { ar = []; clearInterval(_int); } function setGlobalMenu(X) { ar = X; for (var i = 0; i<ar.length; i++) { ar[i].onRollOver = ru.inils.framework.Delegate.create(this, V, [i]); ar[i].onRollOut = ar[i].onReleaseOutside=ru.inils.framework.Delegate.create(this, O, [i]); ar[i].onRelease = ru.inils.framework.Delegate.create(this, RELEASE, [i]); } } function RELEASE(z) { R(z); } function R(c) { k = c; clearInterval(_iv); clearInterval(_int); for (var j = 0; j<ar.length; j++) { ar[j].enabled = false; ar[j].gotoAndStop(1); } _int = setInterval(this, "ENABLE", 30); } function V(c) { ar[c].gotoAndPlay("Over"); } function O(c) { ar[c].gotoAndPlay("Out"); } function ENABLE() { clearInterval(_int); ar[k].gotoAndPlay("Release"); ar[k].enabled = false; _int = setInterval(this,"OPEN",800); } function OPEN() { clearInterval(_int); for (var j = 0; j<ar.length; j++) { ar[j].enabled = true; ar[k].enabled = false; } } } Последний раз редактировалось in4core; 19.03.2010 в 03:59. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Спасибо! Но я что то никак не пойму что делает этот код. Не мог бы ты написать принцип работы своего меню, а код я свой напишу.
Последний раз редактировалось gerasim13; 19.03.2010 в 13:49. |
|
|||||
|
А у тебя странички по разным кадрам?
Как отдельный файл с кодом сделать не подскажу, но можно и в кадре написать не много: stop(); //массив в именами всех кнопок allBut = [page1, page2, page3, page4, page5]; for (var i = 0; i < allBut.length; i++) { //сразу отключает первую кнопку, так как находимся на первой странице _root.allBut[0].enabled=false //это просто пример, текст на кпопке такой же как её имя _root.allBut[i].t.text = _root.allBut[i]._name; //когда кликаем на каждой из кнопок _root.allBut[i].onPress = function() { //переход на номер кадра = последняя буква в имени кнопки _root.gotoAndStop(this._name.substr(-1)); //все кнопки включаем enabledAll(); //а только что кликнутую отключаем this.enabled = false; }; } //функция включает все кнопки function enabledAll() { for (var i = 0; i < allBut.length; i++) { _root.allBut[i].enabled = true; } } Последний раз редактировалось samana; 19.03.2010 в 14:57. |
|
|||||
|
[+4 06.05.14]
|
Ну смотри принцип : ты создаешь массив кнопок например
Дальше пихаешь их в цикл и задаешь свойства роллеров. таким образом :
for(i=0; i<arr.length; i++) { arr[i]. onRelease = rel(i); } function rel(a) { for(i=0; i<arr.length; i++) { arr[i].enabled = true; arr[a].enabled = false; } arr[a].enabled = false; может просто не прокатить из за ряда причин, в этом случае создаешь интервал на другую функцию которая отключит это все. пример ПОЛНЫЙ |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Спасибо, вроде бы въехал=)
Добавлено через 1 час 51 минуту Вот так работает у меня: parent = this._parent; var btnarr = new Array(parent.btnid1,parent.btnid2,parent.btnid3,parent.btnid4,parent.btnid5,parent.btnid6,parent.btnid7); this.fakebtn.onRollOver = over; this.fakebtn.onRollOut = out; this.fakebtn.onPress = down; function over() { gotoAndStop("over"); } function out() { gotoAndStop("up"); txtcontent.textColor = 0xc9cbd0; } function down() { for(i=0; i<btnarr.length; i++) { btnarr[i].fakebtn.enabled = true; btnarr[i].gotoAndStop("up"); btnarr[i].txtcontent.textColor = 0xc9cbd0; fakebtn.enabled = false; } gotoAndStop("down"); txtcontent.textColor = 0x34373f; } Подскажите пожалуйста как сделать код красивее... |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:38. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|