|
|
|
WEB-БИБЛИОТЕКА |
|
Для просмотра сайта
рекомендуется :
-Разрешение : 800*600 -Броузер : Internet Explorer -Для более эффективного просмотра нажмите F11. |
Как я озвучил ссылки щелчками при
помощи обычного Java Script
Как я озвучил ссылки щелчками при помощи обычного Java Script. Лучший способ сохранить авторство на воплощение идеи, это сами понимаете, рассказать о ней во всеуслышание. Но перейдем к делу, друзья мои. Идея реализовать озвучание ссылок или кнопок на сайте, чтобы при наведении на них мышом они щелкали, закралась в мой мозг совсем недавно. Дабы не утруждать себя, я попробовал искать готовые идеи. Задавал вопросы на конференциях, искал по сайтам, но так ничего вразумительного и не нашел. Реализация озвучания кнопок попадалась, но она была или на очень сложных скриптах с Wav файлами, либо, того хуже, на Java апплетах или, еще и еще хуже, на Macromedia. А для меня, как сторонника чистого html с Java и VB скриптами, это совсем не понравилось :о( Опять придумывать все с нуля. Итак, для начала сформировалась сама идея реализации. Она заключалась примерно в этом: При наведении на ссылку срабатывает событие onMouseOver на JavaScript которое запускает некую процедуру или функцию. Та же в свое время, должна проиграть щелчок. Легко сказать проиграть, а как вот? Ну сразу оставив версию реализации этой фишки на Нетскейпе (кстати когда Вы прочтете этот текст, то Вы сможете свободно сделать это и для Нетскейпа, надо будет только использовать EMBED и обычный фрейм. Но не будем торопить события!), я занялся воплощением ее для MSIE. Как заставить броузер Микрософта проиграть какой-нибудь музыкальный файл? - вставить тег <BGSOUND src="pesnia.mid" loop=1>, или pesnia.wav в зависимости от формата звукового файла. Вроде бы начали появляться первые отсветы в глубине туннеля :о) Поэтому подведем первые итоги. В тег ссылки вставляем событие onMouseOver примерно так: <A href="url.html" onMouseOver="sound()">Ссылка</A> И в начале документа html пишем скрипт, который бы выводил куда-нибудь тот BGSOUND. Как всегда, руководствуясь принципом: попытка не пытка, написал такой скрипт: <script language="JavaScript"><!-- Божешь мой :-О, что получилось. Броузер правда проиграл музыку в MIDI формате, но он при этом показал чистую белую страницу созданную document.write и завис до окончания проигрыша песенки в midi формате. Приободренный тем, что он хоть играет песенку, я стал думать: а куда бы сгенерировать этот злосчастный BGSOUND, чтобы при этом остаться на нужной нам странице. Та же форма, или еще какой объект не подходили, надо ведь генерируемый тег вставлять непосредственно в код страницы. А если не в нашу страницу, а в другую... Которая бы тоже видна была... О это идея. Но единственный способ показать на экране не одну страницу, а две, является использование фреймов. Нда, а если их нет на странице, а если пользователь зайдет на страницу минуя главную и второй фрейм где прописывается бексаунд? И что тогда делать, ведь это приведет к ошибке в скрипте:о( И тут я осознал, что идею то я воплощаю для MSIE пользователей, и в нем можно использовать не обычные, а плавающие фреймы встраиваемые в документ! Ваууу... разнеслось по моей комнате, как в древние времена разнеслось слово Эврика воскликнутое Архимедом. Правда в моем случае, мой кот, до этого мирно дремавший на кресле, почему-то вторил мне громогласным МЯУ! Поняв что зря так раскричался, я отправился варить рыбу этому рыжему созданию, но мысли мои витали в дебрях Ява скриптов и хтмл тегов. Придя вскоре назад к своему адскому ящику, и первым заняв кресло (хоть какая-то выгода :о), я окончательно создал следующий скрипт: <script language="JavaScript"><!-- Здесь есть защита от генерации тега в нетскейпе, который не увидит плавающий фрейм, и не будет пытаться писать BGSOUND в несуществующий объект. blank - это так обозван этот самый фрейм, который я в свою очередь сжал до нулевых размеров и поместил сразу после тега BODY вот так: <IFRAME FRAMEBORDER=0 HEIGHT=1 WIDTH=1 NAME="blank" SCROLLING=NO></IFRAME> Как видите, здесь нет обычного свойства SRC=url.html указывающего, какую страницу надо показывать внутри плавающего фрейма. Поэтому он ничего не грузит в себя. И при наведении мышом на ссылку с onMouseOver="sound()" он воспроизводил музыку, генерировав документ с фоновым звуком в этом невидимом фрейме! Осталось дело за малым, сделать этот самый щелчок. Сразу отказавшись от формата Wav из-за того, что файл звука щелчка, возможно, будет по объему больше самой страницы, я остановился на midi. И еще у меня были подозрения насчет того, а станет ли броузер вынимать звуковой файл из кеша, или грузить каждый раз заново. Кто знает эту продукцию микрософта. Поэтому щелчок мной стал делаться в midi формате. Нда, что только не приходится делать вебмастеру, и рисовать, и программировать, и верстать, и статьи придумывать, ну вот и музыку сочинять :о) Благо от меня требовалось сочинения самого короткого произведения в виде
звука "щелк". Запустив Cakewalk, я убрал все возможные комментарии
внутри midi файла, чтобы уменьшить до минимума размер файла, поставил
на первом треке 10 midi канал, который отвечает за ударные, я в опции
piano roll написал две короткие нотки отвечающие за тихий щелчок, и маленький
"дзиньк". Больше ничего не регулировал, ни звук, ни разнос по
колонкам, дабы не увеличить размер файла. В итоге творение pesnia.mid
получилось величиной 60 байт. В заключение, я в cамое начало документа,
как можно ближе к скрипту, поставил <A href="index.html" onMouseOver="sound()">Ссылка</A> |
Сайт основан 20.02.2003
Использование материалов возможно только при ссылке на webbibl.narod.ru
Статьи, программы и изображения принадлежат их авторам.