Просмотр полной версии : Помогите доделать flash-меню
Сделала flash меню, на кнопках сделала действия (наведение, нажатие, активная)... Прописала на кнопки функцию: on (press) { getURL ("адрес", "_self", "GET"); }. Но кнопка активной не становится что делать?
Кнопки активные.
Может быть вы имеете в виду, что они не отправляют вас по ссылке?
Для того, чтобы ссылка работала — необходимо в Publish опциях поставть галочку в форматах
на html. И нажать «PUBLISH» или Ctr+F12. В директории исходника появится menu_neprinjato.html
Его выкладываете вместе с флешкой на любой доступный сервер (типа narod.ru) и тестируйте
браузером — кнопки будут работать.
Кстати — ваши прописанные ссылки нерабочие.
P.S.
Лучше использовать «on (release)», нежели «on (press)»
Лучше использовать «on (release)», нежели «on (press)»
Лучше вообще обработчик восьмилетней давности не использовать.
Лучше вообще обработчик восьмилетней давности не использовать.
Верно, на саму кнопку вешать код — зло. :)
Но это гораздо проще сделать новичку.
Чтобы потом переучиваться? Это не проще новичку, сделать правильно ненамного сложнее.
crazyone
18.08.2008, 02:31
Новички, которым я что-то показывал, вполне нормально воспринимали и код в кадрах и имена кнопок.
Фактически, чтобы написать код в кадре, а не на кнопке, нужно сделать на одно действие больше - дать кнопке имя. Это ненамного сложнее, согласитесь.
Самое смешное, что мы тут паримся, а человек , который спросил про менюшку —
давным-давно забыл…
storm_, ничего я не забыла. Подскажите, пожалуйста, как делать правильно, код на кадрах я знаю как ставить, а вот какой и где - это вопрос, первый раз делаю flash-меню. А ссылки не работают потому что сайта еще нет в сети, он в разработке.
Вобщем — так:
Как уже выше писалось — объект Button уступает по многим параметрам объекту
Movie Clip.
Но в вашем случае — где от кнопок нужно всего-лишь осуществить переход по ссылкам, можно их оставить.
Для того, что вы на сцене в кадре прописать каждой кнопке код, необходимо указать «Instance Name» — когда выделете кнопку, или муви-клип, в левом, нижнем углу появится форма: в ней будет указан тип объекта (Movie Clip, Button,
Shape…), а ниже будет «Instance Name». Туда вводите желаемое имя кнопки. (без пробелов и имя не должно начинаться с цифры)
А в кадре код должен выглядеть так:
имяВашегоКлипа.onRelease = function(){getURL("http://yourlink.com", "_top")}
значение — "_top" указывает на то, что ссылка откроется в текущем окне браузера. Если нужно открыть в новом окне — "_blank".
Вот и все…
еще нужно чтобы при нажатии кнопки и когда ссылка активна, у кнопки менялся внешний вид. Вы мой исходник смотрели? там в библиотеке сделаны Movie Clip, для разных событий кнопки... Если несложно объясните как сделать меню, не вставляя кнопки, или дайте исходник если можно, я попробую разобраться :).
сделала как Вы посоветовали, дала имена и поставила код на кадрах... Теперь действие при нажатии работает, но когда активная ссылка вид кнопки все-таки не меняется
Горбушка
18.08.2008, 17:59
Надо использовать on (rollOver) и on (rollOut) =)
поподробней, я же только учусь?
У муви-клипа есть свойства «onRollOver, onRollOut, onDragOver, onDragOut» —
(Действия при наведенной мыши, при убранной мыши и нажатой подведенной мыши и при нажатой убранной мыши)
А кнопки, тоторые вы используете вышеперечисленные свойства используют без кода. (вам только необходимо заполнить нужные кадры)
Вот пример, как можно использовать onRollOver.
А если сделать все клипами, есть вероятность что будет работать корректно?
Psycho Tiger
19.08.2008, 15:47
А если сделать все клипами, есть вероятность что будет работать корректно?
Ну смотря как сделать. Флэша сейчас на машине нет, но что могу сказать:
1) даем мувиклипу имя (instance name), например, mc.
2) Рисуем в этом клипе 3 кадра
3) Пишем в кадре следующий код:
mc.stop(); //чтобы до того как мы навели на мувик он не проигрывался циклично
mc.onRollOver=function():Void{ //когда наводим на мувик мс (mc.onRollOver) вызываем безымянную функцию() которая ничего не возвращает (Void, можно не писать, но я пишу)
mc.gotoAndStop(2); //переходим на второй кадр
} //закрываем блок обьектов
mc.onRollOut=function():Void{ //аналогично когда уводим мышку
mc.gotoAndStop(1);
}
mc.onPress=function():Void{ //когда нажимаем на кнопку она становится в 3 состояние
mc.gotoAndStop(3);
}
mc.onRelease=function():Void{ //отжмаем - в состояние когда мышка находится над кнопкой
mc.gotoAndStop(2);
}
mc.onDragOut=function():Void{ //если будем драгать за кнопку - просто переведем её в состояние 1, то есть отжата.
//можно и releaseOutSide, но я делаю dragOut - по мне так лучше :)
mc.gotoAndStop(1);
}
У муви-клипа есть свойства «onRollOver, onRollOut, onDragOver, onDragOut»
Это не свойства, это события.
В общем, все сделала правильно... Но все равно действие когда ссылка активна не работает переход на нужный клип...
Разработчик нашей системы управления сайтом предупреждал о подобной проблеме, но хотелось побороться... :) Если кто сталкивался с подобной проблемой и знает как её решить пишите мне... Благодарю всех за помощь :)
_NuClear
19.08.2008, 21:32
не хотел создавать нового топика, потому пишу тут, у меня также проблема с меню, только заключаеться она в следующем: есть несколько кнопок btn1, btn2, btn3 ... нужно к ним подгрузить из файла хмл ссылки. задача вроде бы не трудная но никак не пойму что к чему
XML файл
<menu>
<item name="Item 1" link="http://www.site.ru"/>
<item name="Item 2" link="http://www.yandex.ru" />
<item name="Item 3" link="http://www.mail.ru" />
<item name="Item 4" link="http://www.flasher.ru" />
</menu>
писал такой код
menu_xml = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(ok) {
if (ok) {
F_createMenu();
}
};
menu_xml.load();
F_createMenu = function () {
btn2.link = menu_xml.childNodes[0].childNodes[4].attributes.link;
btn2.onPress = function() {
getURL(this.link, "_self");
}
};
http://www.flashblog.ru/?p=87, это про то как c xml меню делать.
А с активной ссылкой наврятле удастся справится, можно подключит соответствующие flash-ролики (меню), другого способа не нашлось :)
for(var i = 0; i < menu_xml.firstChild.childNodes.length; i ++){
this['btn' + i].link = menu_xml.firstChild.childNodes[i].attributes.link;
this['btn' + i].onPress = function(){
getURL(this.link, "_self");
}
}
_NuClear
22.08.2008, 22:37
MrPoma спс сделал, буду учить дальше
Ваше меню с использованием клипов-кнопок.
Спасибо огромное, Wolsh, за помощь :)...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.