Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехватить click на flash ролике 
:(
    Опции темы
dimych83
Дата 18.3.2008, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 21.3.2007
Где: Красноярск

Репутация: нет
Всего: нет



Добрый день!
Мне надо вставить на главную страницу сайта флэш-ролик swf и повесить на него ссылку, чтобы при нажатии пользователь попадал на другую страницу. В соответствии с исходниками одного из примеров сделал следующее:
Код


<script language=javascript> 
function OpenUrl() { 
  window.navigate("http://www.xxx.ru/yyy/"); 
}; 
</SCRIPT>

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-44553540000" id=howto codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="730" HEIGHT="24"  ALIGN="center">
<PARAM NAME=movie VALUE="/images/howto.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=wmode VALUE=opaque>
<EMBED src="/images/howto.swf" border="0" quality=high WIDTH="730" HEIGHT="24" NAME="/images/howto" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> </EMBED>
</OBJECT>

<script language=javascipt> 
  document.all.howto.onmousedown=new Function("OpenUrl()");
</script>



но это не работает, нет никакой реакции на нажатие. На сайте откуда этот исходник взят - все нормально. Подскажите в чем проблема может быть?!
Может быть обработчик события задается как один из парамтеров объекта?

Это сообщение отредактировал(а) dimych83 - 18.3.2008, 11:46
PM MAIL ICQ   Вверх
IDVsbruck
Дата 18.3.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



1. указан id, а ссылка идет по имени. Ссылаться надо так:
Код
document.getElementById("howto").onmousedown = ...

2. определение "чужой" функции происходит так:
Код
document.getElementById("howto").onmousedown = OpenUrl;

или так:
Код
document.getElementById("howto").onmousedown = function() {
      OpenUrl();
};

второй случай обычно используется, если надо вызвать внешнюю функцию с параметрами.
3. идеологически правильнее помещать флешку (object) в div и обрабатывать событие, приходящее в div, а затем, чтобы оно не передавалось по иерархии ниже, "обнулять" его:
Код
event.returnValue = false;

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

Это сообщение отредактировал(а) IDVsbruck - 18.3.2008, 13:29
PM MAIL   Вверх
dimych83
Дата 18.3.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 21.3.2007
Где: Красноярск

Репутация: нет
Всего: нет



Воспользовался 2ым вариантом: 

<script language="JavaScript">
  document.getElementById("howto").onclick = OpenUrl();
</script>

То же самое, IE никаких ошибок не выдает, но и никак на нажатие не реагирует.



Это сообщение отредактировал(а) dimych83 - 18.3.2008, 14:08
PM MAIL ICQ   Вверх
IDVsbruck
Дата 18.3.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Ну ты даешь! Внимательнее надо относиться к коду!!!
OpenUrl() - это результат функции (сначала ее вызов, а потом получение результата),
OpenUrl - ссылка на функцию (простыми словами, чтобы событие переадресовывало свою реакцию на выполнение нужной функции).
Если ты назначаешь событию функцию, то скобки указывать не надо.
Еще для себя поставь alert в своей функции для дебага - приходит ли событие по нажатию на кнопку (прдн, если ты так и делаешь).
PM MAIL   Вверх
dimych83
Дата 19.3.2008, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 21.3.2007
Где: Красноярск

Репутация: нет
Всего: нет



Я с JavaScript первый раз сталкиваюсь за последние года 4 smile
Все равно косяк - никакой реакции. Вот весь кусок кода, который к флэшке относится:

Код

<script language="JavaScript"> 
  function OpenUrl() { 
    window.navigate("http://www.mobbiwood.ru/services/givethemood/"); 
  }; 
</SCRIPT>

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-44553540000" id=howto codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="580" HEIGHT="21"  ALIGN="center">
<PARAM NAME=movie VALUE="/images/howto.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=wmode VALUE=opaque>
<EMBED src="/images/howto.swf" border="0" quality=high WIDTH="580" HEIGHT="21" NAME=howto ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> </EMBED>
</OBJECT>

<script language="JavaScript"> 
  document.getElementById("howto").onclick = OpenUrl; 
</script>



Сама ф-ция OpenUrl нормально отрабатывает - проверял на кнопке.
Еще один момент - я редактирую страницу через NetCat, может это как-то влияет?


Это сообщение отредактировал(а) dimych83 - 19.3.2008, 05:32
PM MAIL ICQ   Вверх
Itsys
Дата 19.3.2008, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



А причем здесь
Код

    window.navigate("http://www.mobbiwood.ru/services/givethemood/"); 


насколько я знаю писать нало так
Код

    window.location.href = "http://www.mobbiwood.ru/services/givethemood/"; 


PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.