Показать сообщение отдельно
  #5 (permalink)  
Старый 22.08.2011, 20:51
Аспирант
Отправить личное сообщение для ILL-JAH Посмотреть профиль Найти все сообщения от ILL-JAH
 
Регистрация: 24.03.2011
Сообщений: 93

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