Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Эмулировать клик на флеш объект при помощи jquery


Автор: Aver78 22.1.2009, 23:29
Нужно сделать эмуляцию клика на существующий флеш объект при помощи jquery
Код

<div id='aaa'><object id='aaa' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100" height="100">
<param name="movie" value="basket.swf">
<param name="play" value="true">
<param name="loop" value="true">
<param name="quality" value="high">
<embed width="100" height="100" src="basket.swf" play="true" loop="true" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></object>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id='bbb' style="background-color:rgb(0,153,0); width:200; height:200; float:left;">
<p>&nbsp;</p>ghk
</div>

<script language="JavaScript">
$('#bbb').click(function (e){
$("#aaa").click();

                  }); 
</script>

Вот так оно не работает. 
Вообще задача вызвать действие флеша при помощи javascript. Так как я не знаю флеш, а флешер не знает javascript получается разговор глухого с немым. В итоге решили пойти по такому пути, но если кто-то предложит что-нибудь более изящное буду только рад.

Автор: ksnk 23.1.2009, 09:49
Цитата

флешер не знает javascript


Пусть ваш флешер почитает наконец про ExternalInterface. ExternalInterface.call - подергать со стороны флеша функцию JavaScript, ExternalInterface.addCallback - установить обработчик функции, который можно "подергать" со стороны JavScript. В любом учебнике по флешу, где упоминается Action script можно и примерами разжиться...


Автор: Aliance 23.1.2009, 10:00
id (он же индитификатор) - это уникальное имя, повторяться два раза на странице оно не может!

Попробуйте так:
Код

<div><object id='aaa' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="100" height="100">
<param name="movie" value="basket.swf">
<param name="play" value="true">
<param name="loop" value="true">
<param name="quality" value="high">
<embed width="100" height="100" src="basket.swf" play="true" loop="true" quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></object>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id='bbb' style="background-color:rgb(0,153,0); width:200; height:200; float:left;">
<p>&nbsp;</p>ghk
</div>
<script type="text/javascript">
$( '#bbb' ).bind ( 'click', function ()
    {
        $( '#aaa' ).trigger( 'click' );
    }
);
</script>

Автор: Aver78 23.1.2009, 15:51
Цитата(Aliance @  23.1.2009,  10:00 Найти цитируемый пост)
id (он же индитификатор) - это уникальное имя, повторяться два раза на странице оно не может!

Это понятно. Я, разумеется оставлял 1 id, просто я показал что и клик на див и на сам объект по id не приводит к результату.

Автор: Aver78 23.1.2009, 16:32
Цитата(ksnk @  23.1.2009,  09:49 Найти цитируемый пост)
Пусть ваш флешер почитает наконец про ExternalInterface. ExternalInterface.call - подергать со стороны флеша функцию JavaScript, ExternalInterface.addCallback - установить обработчик функции, который можно "подергать" со стороны JavScript. В любом учебнике по флешу, где упоминается Action script можно и примерами разжиться...

Блин, пишет не его профиль, не разбирался в части написаной для JS, а сейчас разбираться некогда, сроки горят.

Автор: Aliance 23.1.2009, 17:06
Aver78, я же написал решение, ты его пробовал?

Автор: Aver78 23.1.2009, 17:11
Цитата(Aliance @  23.1.2009,  17:06 Найти цитируемый пост)
Aver78, я же написал решение, ты его пробовал?

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

Автор: ksnk 23.1.2009, 18:23
Цитата

я прям хз что делать

Может наконец-то попинать флешера? 

Автор: Aver78 23.1.2009, 20:40
Цитата(ksnk @  23.1.2009,  18:23 Найти цитируемый пост)
Может наконец-то попинать флешера? 

Так и сделал, но вот насколько быстро он разберется - тайна сия велика есть. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)