Просмотр полной версии : Выпадающее меню
Premudraya
16.05.2006, 11:49
Как сделать, чтобы при нажатии на нужный пункт меню, появлялась нужная web-страница? По-моему надо применять getURL, но как?
Слою с кнопкой присваивается скрипт:
var listener = new Object();
listener.click = function(evtObj) {
var button = evtObj.target;
if(button.menu == undefined) {
// Create a Menu instance and add some items
button.menu = mx.controls.Menu.createMenu();
button.menu.addMenuItem("Пункт меню 1");
button.menu.addMenuItem("Пункт меню 2");
button.menu.addMenuItem("Пункт меню 3");
button.menu.addMenuItem("Пункт меню 4");
// Add a change-listener to catch item selections
var changeListener = new Object();
changeListener.change = function(event) {
var item = event.menuItem;
trace("Item selected: " + item.attributes.label);
}
button.menu.addEventListener("change", changeListener);
}
button.menu.show(button.x, button.y + button.height);
}
commandBtn.addEventListener("click", listener);
:umnik2:
Премудрая, а не проще ли поступить более мудро, и создать мувик в котором повесить следующий код:
this.onRelease = function() {
getURL('http:www.MyDolbaniyStranic.ru');
}
З.Ы. Заранее извиняюсь перед админами, что не использовал тег CODE, т.к. он у меня не захотел появляться. Нажимаю, ноль эффекта, даже "лапа" не появляется когда наводишь на значок. Причем на любой значок, хоть картинка, хоть выравнивание...
У компонентов нету(есть но нельзя юзать) события onRelease если мы говорим о mx компонентах
А вручную написать [code] нельзя было? И потом, на компонент onRelease не вешают.
прочтите мой первый пост более внимательно... про компоненты там где то сказано?...
ты предлагаешь сделать выпадающее меню в ручную?
Premudraya
16.05.2006, 14:40
Это два компонента: Menu (появляется после нажатия на кнопку) и Button.
Про MovieClip не сработало( Добавляла скрипт и к просто мувиклипу, и к button внутри мувиклипа - ничего. Мне надо по пунктам.;)
St. Father
16.05.2006, 14:52
changeListener.change = function (event)
{
if (event.menuItem.attributes.label == "Пункт какой-то")
{
getURL ("http://www.someurl.somedom","_self")
}
};
нет?
я бы сделал так
import mx.controls.Button;
import mx.controls.Menu;
var menu_btn:Button = this.createClassObject(Button, "menu_btn", 10, {label:"Menu"});
//
var menu:Menu = Menu.createMenu();
menu.addMenuItem({label:"item1",value:"someURL.html"});
menu.addMenuItem({label:"item2",value:"someURL.html"});
menu.addMenuItem({label:"item3",value:"someURL.html"});
menu.addMenuItem({label:"item4",value:"someURL.html"});
//
function onMenuChange(evt:Object):Void {
getURL(evt.menuItem.attributes.value
}
function onButtonClick(evt:Object):Void {
menu.show(menu_btn.x,menu_btn.y+menu_btn.height);
}
menu_btn.addEventListener("click",onButtonClick);
menu.addEventListener("change",onMenuChange);
ты предлагаешь сделать выпадающее меню в ручную?
Я предлагаю сделать меню, хоть выпадающее, хоть выезжающее, а хоть всплывающее с помощью мувиков.
Это проще и дешевле(вес конечного swf).
Это проще и дешевле(вес конечного swf).
Это не проще и не быстрее.
Я не говорил что быстрее. А то что проще, то это факт... Хотя кому как. С компонентами в принципе не работал и не собираюсь, хотя они могут быть полезны только для создания Flash-редактора текста, типа Word'а. И не более того.
А меню предлагаю делать с помощью мувов, которые аттачишь столько раз, сколько пунктов меню нужно. Ни какого гемора и лишней сотни строк кода...
Premudraya
16.05.2006, 15:24
Спасибо St. Father, Nirth, ваши коды - то, что надо ;)
Оба варианта работают как надо в swf файле, но при просмотре в браузере пункты меню, т.е. ссылки, не открываются! :confused:
Flash-редактора текста, типа Word'а. И не более того.
вашу точку зрения понял, спорить не буду, но я с компонентами много чего делал.
С компонентами в принципе не работал и не собираюсь
если не работали то попрошу воздержаться от реплик вроде "Это проще" не дизинформируйте людей.
Оба варианта работают как надо в swf файле, но при просмотре в браузере пункты меню, т.е. ссылки, не открываются!
Исходник в студию
2Nirth я конечно не навязываюсь, но я не sem1212, а Sem1313.
Прошу не путать свои суеверия с моим ником.
Ну это так, между словом, т.е. флуд, прошу прощения, но так же прошу учесть на будущее...
Premudraya
16.05.2006, 15:47
Вот скрипты, которые присваиваются первому фрейму слоя с кнопкой:
ВАРИАНТ 1
var listener = new Object();
listener.click = function(evtObj) {
var button = evtObj.target;
if(button.menu == undefined) {
// Create a Menu instance and add some items
button.menu = mx.controls.Menu.createMenu();
button.menu.addMenuItem("Пункт меню 1");
button.menu.addMenuItem("Пункт меню 2");
var changeListener = new Object();
changeListener.change = function (event)
{
if (event.menuItem.attributes.label == "Пункт меню 1")
{
getURL ("http://www.en-def.ru","_self")
}
if (event.menuItem.attributes.label == "Пункт меню 2")
{
getURL ("http://www.en-def.ru/kachestvo.html","_self")
}
};
button.menu.addEventListener("change", changeListener);
}
button.menu.show(button.x, button.y + button.height);
}
commandBtn.addEventListener("click", listener);
Premudraya
16.05.2006, 15:50
ВАРИАНТ 2
import mx.controls.Button;
import mx.controls.Menu;
var menu_btn:Button = this.createClassObject(Button, "menu_btn", 10, {label:"Кнопка"});
//
var menu:Menu = Menu.createMenu();
menu.addMenuItem({label:"Пункт меню 1",value:"http://en-def.ru"});
menu.addMenuItem({label:"Пункт меню 2",value:"http://en-def.ru/kachestvo.html"});
//
function onMenuChange(evt:Object):Void {
getURL(evt.menuItem.attributes.value)
}
function onButtonClick(evt:Object):Void {
menu.show(menu_btn.x,menu_btn.y+menu_btn.height);
}
menu_btn.addEventListener("click",onButtonClick);
menu.addEventListener("change",onMenuChange);
Не знаю, у меня работает. и оформляйте код в тэгах [ code ] (без пробелов)
Premudraya
16.05.2006, 16:12
У меня правда в браузере не открывается:umnik2:
Я попробую ещё на другом компе вечером, потом сообщу.:victory:
Premudraya
16.05.2006, 16:16
:victory: Настоящие WEB-мастера здесь, буду заходить на ваш форум чаще ))
Premudraya
17.05.2006, 11:25
Я уже на другом компе попробовала - то же самое..! В swf файле всё работает как надо, но только опубликую html - ccылки не работают! Может я куда-то не туда скрипт вставляю?:D
Premudraya
18.05.2006, 16:15
:( На двух компах обозреватель не открывает ссылки, на одно - открывает!! Почему? Может что-то в настройках Internet Explorer? Я в свойствах - дополнительно восстановила значения по умолчанию, не помогло.:rtfm:
St. Father
18.05.2006, 16:56
в окне паблишь сеттингс попробуй в селекте (внизу) выбрать Access network only :)
Premudraya
18.05.2006, 17:13
Не нахожу в Publish Settings Acces Network... У меня Flash MX 4:o
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.