Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   javascript и flash - play и stop (https://javascript.ru/forum/misc/10362-javascript-i-flash-play-i-stop.html)

Sergio11 30.06.2010 17:41

javascript и flash - play и stop
 
Как через javascript проиграть и остановить флеш? Нашёл что-то, но оно не работает, буду сильно благодарен за нормальный работающий пример.
Нужно что-то такого: щёлкнул на ссылку 1 - заиграла флешка сначала, щёлкнул на ссылку 2 - флешка остановилась и перешла на начальный (первый) фрейм. И всё, вроде просто, а рабочего решения не нашёл.

Sweet 30.06.2010 18:56

Я не специалист в данном вопросе, но вы тут почитать не пробовали?:) Или хочется готового решения, не вникая?:)

Sergio11 01.07.2010 01:54

Читал, но это не то. Там про передачу данных из javascript во flash. Да, соглашусь с народом: можно передавать во флеш переменную "ya_igrayu=1", а в самой флеше поставить проверку переменной, вида "if(ya_igrayu) this.play();", но с всё это слишком уже мудрёное... Передавать данные во флеш надо только тогда, когда там действительно что-то мудрёное на веб-сайте, а не просто "play or stop".
Однако, в комментариях к той статье увидел это:
Цитата:

Вопрос снят.
Решение:
Воспризвести: document.getElementById(obj).Play();
Остановить: document.getElementById(obj).StopPlay();
где obj - это id контейнера, при использовании динамеческого swfobject.
Источник: http://www.belonogov.ru/wrote/texts/fscommander/
Но, во-первых, не понятно, где комментатор нашёл в источнике упоминание про swfobject, во-вторых, document.getElementById(obj).Play(); не сработал, консоль ошибок ничего не вывела, и, наконец, в-третьих, переделывать свой код из кода с использованием swfobject в код, как в источнике, т.е. с использованием object было уже лень.

Проблему в конце концов решил иным путём, без play и stop вообще, просто динамически каждый раз создаю через swfobect новую флешку и скрываю, если неожиданно не нужна (фон совпадает с первым кадром флешки, так что всё как надо смотрится - а это главное для заказчика).

Но всё же, если у кого-то есть play и stop для флеша через яваскрипт, - будьте добры, выложите пример. Ссылки и примеры передачи данных - не надо!

x-yuri 01.07.2010 06:25

предположу, что adobe решили так: чтобы флешку можно было остановить, она должна сама предоставить такую возможность внешнему миру

p.s. мудреное решение занимает аж 10 строчек, омг O.o

ILL-JAH 22.08.2011 20:51

Тоже решил попробовать сделать кнопки 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>

xfilesiter 24.11.2011 05:15

а у меня проблема другая, при переходе по ссылке флеш не запускается, хотя код для вставки в хтмл использую всегда один и тот же
<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

Decameron 29.11.2011 18:34

<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&amp;alpha1=.50&amp;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&amp;alpha1=.50&amp;framerat e1=24" />
<param name="swfliveconnect" value="true" />
</object>
</object>


Часовой пояс GMT +3, время: 22:26.