javascript и flash - play и stop
Как через javascript проиграть и остановить флеш? Нашёл что-то, но оно не работает, буду сильно благодарен за нормальный работающий пример.
Нужно что-то такого: щёлкнул на ссылку 1 - заиграла флешка сначала, щёлкнул на ссылку 2 - флешка остановилась и перешла на начальный (первый) фрейм. И всё, вроде просто, а рабочего решения не нашёл. |
Я не специалист в данном вопросе, но вы тут почитать не пробовали?:) Или хочется готового решения, не вникая?:)
|
Читал, но это не то. Там про передачу данных из javascript во flash. Да, соглашусь с народом: можно передавать во флеш переменную "ya_igrayu=1", а в самой флеше поставить проверку переменной, вида "if(ya_igrayu) this.play();", но с всё это слишком уже мудрёное... Передавать данные во флеш надо только тогда, когда там действительно что-то мудрёное на веб-сайте, а не просто "play or stop".
Однако, в комментариях к той статье увидел это: Цитата:
Проблему в конце концов решил иным путём, без play и stop вообще, просто динамически каждый раз создаю через swfobect новую флешку и скрываю, если неожиданно не нужна (фон совпадает с первым кадром флешки, так что всё как надо смотрится - а это главное для заказчика). Но всё же, если у кого-то есть play и stop для флеша через яваскрипт, - будьте добры, выложите пример. Ссылки и примеры передачи данных - не надо! |
предположу, что adobe решили так: чтобы флешку можно было остановить, она должна сама предоставить такую возможность внешнему миру
p.s. мудреное решение занимает аж 10 строчек, омг O.o |
Тоже решил попробовать сделать кнопки STOP и PLAY на странице для управления флэш-роликом (swf-файл). В разных браузерах всё по-разному:
IE и Opera: При зарузке страницы ролик автоматически не воспроизводится. Собсно так и должно быть. При нажатии кнопки PLAY ролик воспроизводится. При нажатии кнопки STOP воспроизведение видео останавливается, звук продолжает воспроизводиться дальше. При последующем нажатии кнопки PLAY видео "сниается с паузы", но, как уже стало понятно, рассинхрон со звуком, ибо он ушёл вперёд. В Лисе, Хроме и Сафари всё тоже самое, только при загрузке страницы включается автоматическое воспроизведение флэш-ролика. Причем в Лисе без звука. Вопрос: есть ли в JS простые (ессно кросбраузерные) способы (свойства и методы flash-объекта) управления флэш-роликом (воспроизведение видео синхронно со звуком, синхронная остановка звука и видео и пр.) или без создания "мостов JS-Flash" никак не обойтись? Статью про "Мост" читал, но ничего не понял, ибо во Flash и AS полный ноль. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Flash</title> </head> <body> <div> <object id="movieIE" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="400"> <param name="movie" value="SwissCheese.swf"/> <!--[if !IE]>--> <object id="movie" type="application/x-shockwave-flash" data="SwissCheese.swf" width="400" height="400"> <!--<![endif]--> <p>Alternative content</p> <!--[if !IE]>--> </object> <!--<![endif]--> </object><br /> <input id="play" type="button" onclick="playFlash()" value="play"/> <input id="stop" type="button" onclick="stopFlash()" value="stop"/> </div> <script type="text/javascript"> var flash = {}; if (navigator.appName.indexOf("Microsoft") != -1) flash = document.getElementById("movieIE"); else flash = document.getElementById("movie"); if (flash.IsPlaying() == true) { flash.StopPlay(); flash.Rewind(); } function playFlash() { if (flash.PercentLoaded() == 100) flash.Play(); } function stopFlash() { flash.StopPlay(); } </script> </body> </html> |
а у меня проблема другая, при переходе по ссылке флеш не запускается, хотя код для вставки в хтмл использую всегда один и тот же
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%" id="index.swf" align="center"> <param name="allowScriptAccess" value="sameDomain"> <param name="movie" value="index.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#000000"> <param name="wmode" value="opaque"> <param name="scale" value="noborder"> <embed src="index.swf" quality="high" bgcolor="#000000" width="100%" height="100%" name="index.swf" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> </object> сайт воспроизвожится только после того как правой кнопкой щелкнуть и "воспроизвести нажать" ссылка: http://все-что-угодно.рф/vinil/index.html |
<object classid="clsid: (без пробела)D27CDB6E-AE6D-11cf-96B8-444553540000" id="flash1" width="100%" height="100%">
<param name="movie" value="index.swf" /> <param name="menu" value="true"> <param name="play" value="false"> <param name="quality" value="high" /> <param name="scale" value="exactfit /> <param name="wmode" value="transparent" /> <param name="flashvars" value="color1=0xFFFFFF&alpha1=.50&framerat e1=24" /> <param name="swfliveconnect" value="true" /> <object type="application/x-shockwave-flash" data="index.swf" id="flash1" width="100%" height="100%"> <param name="menu" value="true"> <param name="play" value="false"> <param name="quality" value="high" /> <param name="scale" value="exactfit /> <param name="wmode" value="transparent" /> <param name="flashvars" value="color1=0xFFFFFF&alpha1=.50&framerat e1=24" /> <param name="swfliveconnect" value="true" /> </object> </object> |
Часовой пояс GMT +3, время: 22:26. |