Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Звук на страницы (https://javascript.ru/forum/dom-window/3339-zvuk-na-stranicy.html)

Михаил 09.04.2009 18:38

Звук на страницы
 
Здравствуйте. На моем сайте lepsh.net - я использую ява скрипт для набукания Иконок категорий. Очень хотел бы добавить к этому эффекту звук. Решил что самое правильное решение будет в том, чтоб по событию (клику, наведению мыши) вызывать из ява скрипт событие в маленькой флеш вставке со звуком. Как это реализовать не знаю. Может поможете?

ZoNT 09.04.2009 18:42

Вставляешь на страничку флешку, задаёшь ей id="flash_id". потом ищещшь скриптом её:
var flash = document.getelementById('flash_id');

потом вызываешь по наведению (onmouseover) функцию проигрывания звука во вфлешке (например my_play):
flash.my_play();

Но эта функция должна быть описана во флешке. Для этого надо использовать ExternalInterface. Почитай про него...

Михаил 09.04.2009 18:48

Звук из флеш
 
Я пхп программер, ява скрипт знаю только как пользователь (применяю готовые скрипты), с флешем вообще не имел дело. Может поможете? Хотябы простенький работающий пример? Если это не очень сложно.

ZoNT 09.04.2009 18:58

нет уж, это займёт слишком много моего времени: яваскрипт написать - пара минут, а вот флешку сделать - минут 20 придётся угрохать, а то и больше...

Михаил 09.04.2009 19:13

Звук
 
Жаль. Оч. надо. Я б даж заплатил.

Kolyaj 09.04.2009 19:19

Сижу я обычно в интернете, в некоторых вкладках работа работается, в некоторых блоги/форумы открыты. В наушниках любимая музыка играет. Периодически открываю различные ссылки в фоне, чтобы вернуться к ним, когда время будет. И вдруг раз, что за фигня, херня какая-то в наушниках заиграла. Вроде не запускал ничего. Начинаю рыскать в десятках вкладок в поисках мудацкого сайта с музыкой, наконец, убиваю его, даже не посмотрев, т.к. нехер забивать мои наушники своей мудацкой музыкой.

Это кстати вполне приличная история. Намного больше мата будет, если посетитель вашего сайта ночью наведет мышку на кнопочку, а у него при этом колонки на полную громкость. И ладно если нет спящего ребенка в квартире.

Михаил 09.04.2009 19:24

Звук
 
С музыкой понятно. Но звуковые события реально оживляют сайт. Сам не люблю сайты с фоновой музыкой. Тут другое. Звуки будут не громче кликов мышки, просто требуется больше динамики, и именно звук решит эту проблему.

Kolyaj 09.04.2009 19:56

Михаил,
Цитата:

Сообщение от Kolyaj
Намного больше мата будет, если посетитель вашего сайта ночью наведет мышку на кнопочку, а у него при этом колонки на полную громкость. И ладно если нет спящего ребенка в квартире.


Gvozd 09.04.2009 20:25

Михаил, нельзя это делать ни в коем случае, как фичу по умолчанию
Ни в коем случае.если вы очень хотите, чтобы все-таки это было, оно должно включатся из самой глубокой настройки после нескольких вопросов "вы уверены?"
а отключатся должно мгновенно, самой заметной кнопкой, с любой страницы сайта
и вообще одно из главных правил дизайна:
он должен быть таким, чтобы пользователь его не заметил.
пользователь приходит на сайт за информацией, а не за красивым и громким дизайном.
лучше киньте свои усилия, на оптимизациию работы пользователя с сайтом, чтобы он не задумываясь находи нужные ему ссулки и кнопки, и чтобы любой его действие происходило в минимум телодвижений мышки, клавиатуры и мозга.

dimaniac 10.05.2009 15:41

Здравствуйте я новичок в Javascript прошел пару курсов на intuit и сейчас начинаю читать библию javascript.
Пишу скрипт для себя есть фрейм в нем одно из окон постоянно обновляется и проверяются определенные элементы нужно чтобы при их определенных значениях издавался звук. В гугле нашел что для этого испольюзуется тэг embed но у меня он почему то не работает ни в опере ни в лисе. Вот пример кода:
<html>
<head>
<script>
function myfunc(){
document.getElementById('myid1').play(false);
}
</script>
</head>
<body>
<EMBED SRC="sonic.wav" width=1 height=1  autostart="false" HIDDEN=TRUE NAME="sound1" id="myid1" loop="false" volume=100 ></embed>
<input type=button name="1" value="asdf1" onClick="myfunc()">
</body>
</html>

При загрузке страницы происходит проигрывание звука(хотя атрибут autostart="false") и при нажатии на кнопку ничего не происходит.
Пока альтернатива это использование ссылки и метода click(). Но ссылку видно. Хотелось бы разобраться почему так происходит.
Еще одна альтернатива это использование swf файла для музыки но я во флэш вообще ничего не понимаю.

dimaniac 13.05.2009 20:04

Кстати еще возник вопрос. Метод click() прекрасно работает в опере но мне нужно чтобы она работал в лисе но почему то он там не работает ссылка только мышкой нажимается. Как можно исправить?

Gvozd 14.05.2009 16:06

Цитата:

Сообщение от dimaniac
Метод click() прекрасно работает в опере но мне нужно чтобы она работал в лисе но почему то он там не работает ссылка только мышкой нажимается. Как можно исправить?

никак

dimaniac 14.05.2009 17:16

А можно чуть более развернуто :)

Riim 14.05.2009 17:29

Цитата:

Сообщение от dimaniac
А можно чуть более развернуто

Ну совсем никак.

dimaniac 14.05.2009 18:19

а можно более развернуто и без подъебок?

Kolyaj 14.05.2009 18:24

В общем случае никак. Но если вы прописываете обработчик события в HTML, то можно просто вызвать метод onclick объекта.

dimaniac 15.05.2009 23:28

Kolyaj, а можно поподробнее? Я в гугле порылся нашел только вот это: http://www.webdeveloper.com/forum/ar.../t-102595.html и http://forums.mozillazine.org/viewto...?f=25&t=299879 и ни один из способов у меня не заработал.
Кстати более менее решил проблему со звуком: http://www.jstoolbox.com/2008/04/29/...edeniya-zvuka/ - со скрипом и побочными эффектами но все таки работает :)

Gvozd 16.05.2009 00:00

dimaniac,
я проглядел тему, и не увидел, чтобы у них что-то получилось сделать с мозиллой.
кстати, в русскоязыйной выдаче гугла полно инфы, о том, что заставить мозилу делать click нельзя.
можно вызвать функцию определенную как обработчик.
можно попытатся самостоятельно выполнить действия аналогичные оригинальным.
т.е например для ссылки это будет что-то вроде:
if(link_elem.onclick())
    location.href=link_elem.href;

Но это уже эмуляция, которую для всех элементов надо прописывать по своему, и не для всех получится. в итоге получаем мини-библиотеку на несколько сотен строк.
и это все, чтобы эмулировать click() которого нету в мозилле
а вот и материалы гугла
http://www.google.ru/search?hl=ru&cl...rip t+click+m


Часовой пояс GMT +3, время: 09:11.