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, время: 00:14. |