PDA

Просмотр полной версии : Помогите доделать flash-меню


evraz
15.08.2008, 17:53
Сделала flash меню, на кнопках сделала действия (наведение, нажатие, активная)... Прописала на кнопки функцию: on (press) { getURL ("адрес", "_self", "GET"); }. Но кнопка активной не становится что делать?

storm_
16.08.2008, 02:53
Кнопки активные.
Может быть вы имеете в виду, что они не отправляют вас по ссылке?
Для того, чтобы ссылка работала — необходимо в Publish опциях поставть галочку в форматах
на html. И нажать «PUBLISH» или Ctr+F12. В директории исходника появится menu_neprinjato.html
Его выкладываете вместе с флешкой на любой доступный сервер (типа narod.ru) и тестируйте
браузером — кнопки будут работать.

Кстати — ваши прописанные ссылки нерабочие.

P.S.

Лучше использовать «on (release)», нежели «on (press)»

etc
16.08.2008, 12:50
Лучше использовать «on (release)», нежели «on (press)»

Лучше вообще обработчик восьмилетней давности не использовать.

storm_
16.08.2008, 14:38
Лучше вообще обработчик восьмилетней давности не использовать.
Верно, на саму кнопку вешать код — зло. :)
Но это гораздо проще сделать новичку.

etc
16.08.2008, 15:01
Чтобы потом переучиваться? Это не проще новичку, сделать правильно ненамного сложнее.

crazyone
18.08.2008, 02:31
Новички, которым я что-то показывал, вполне нормально воспринимали и код в кадрах и имена кнопок.

Фактически, чтобы написать код в кадре, а не на кнопке, нужно сделать на одно действие больше - дать кнопке имя. Это ненамного сложнее, согласитесь.

storm_
18.08.2008, 02:43
Самое смешное, что мы тут паримся, а человек , который спросил про менюшку —
давным-давно забыл…

evraz
18.08.2008, 12:42
storm_, ничего я не забыла. Подскажите, пожалуйста, как делать правильно, код на кадрах я знаю как ставить, а вот какой и где - это вопрос, первый раз делаю flash-меню. А ссылки не работают потому что сайта еще нет в сети, он в разработке.

storm_
18.08.2008, 15:53
Вобщем — так:
Как уже выше писалось — объект Button уступает по многим параметрам объекту
Movie Clip.
Но в вашем случае — где от кнопок нужно всего-лишь осуществить переход по ссылкам, можно их оставить.
Для того, что вы на сцене в кадре прописать каждой кнопке код, необходимо указать «Instance Name» — когда выделете кнопку, или муви-клип, в левом, нижнем углу появится форма: в ней будет указан тип объекта (Movie Clip, Button,
Shape…), а ниже будет «Instance Name». Туда вводите желаемое имя кнопки. (без пробелов и имя не должно начинаться с цифры)
А в кадре код должен выглядеть так:
имяВашегоКлипа.onRelease = function(){getURL("http://yourlink.com", "_top")}
значение — "_top" указывает на то, что ссылка откроется в текущем окне браузера. Если нужно открыть в новом окне — "_blank".
Вот и все…

evraz
18.08.2008, 16:30
еще нужно чтобы при нажатии кнопки и когда ссылка активна, у кнопки менялся внешний вид. Вы мой исходник смотрели? там в библиотеке сделаны Movie Clip, для разных событий кнопки... Если несложно объясните как сделать меню, не вставляя кнопки, или дайте исходник если можно, я попробую разобраться :).

evraz
18.08.2008, 16:46
сделала как Вы посоветовали, дала имена и поставила код на кадрах... Теперь действие при нажатии работает, но когда активная ссылка вид кнопки все-таки не меняется

Горбушка
18.08.2008, 17:59
Надо использовать on (rollOver) и on (rollOut) =)

evraz
18.08.2008, 18:02
поподробней, я же только учусь?

storm_
18.08.2008, 19:01
У муви-клипа есть свойства «onRollOver, onRollOut, onDragOver, onDragOut» —
(Действия при наведенной мыши, при убранной мыши и нажатой подведенной мыши и при нажатой убранной мыши)
А кнопки, тоторые вы используете вышеперечисленные свойства используют без кода. (вам только необходимо заполнить нужные кадры)
Вот пример, как можно использовать onRollOver.

evraz
19.08.2008, 10:56
А если сделать все клипами, есть вероятность что будет работать корректно?

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»
Это не свойства, это события.

evraz
19.08.2008, 18:16
В общем, все сделала правильно... Но все равно действие когда ссылка активна не работает переход на нужный клип...
Разработчик нашей системы управления сайтом предупреждал о подобной проблеме, но хотелось побороться... :) Если кто сталкивался с подобной проблемой и знает как её решить пишите мне... Благодарю всех за помощь :)

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

evraz
21.08.2008, 12:12
http://www.flashblog.ru/?p=87, это про то как c xml меню делать.
А с активной ссылкой наврятле удастся справится, можно подключит соответствующие flash-ролики (меню), другого способа не нашлось :)

MrPoma
21.08.2008, 12:17
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
23.08.2008, 00:10
Ваше меню с использованием клипов-кнопок.

evraz
25.08.2008, 17:26
Спасибо огромное, Wolsh, за помощь :)...