Как я могу начать флэш-видео из JavaScript? - PullRequest
1 голос
/ 21 марта 2009

Можно ли начать воспроизведение файла внутри флеш-плеера, используя код JavaScript? Если так, как бы я это сделал?

Ответы [ 6 ]

6 голосов
/ 21 марта 2009

Попробуйте использовать swfObject , вы можете сделать любую функцию ActionScript видимой для javascript, используя ExternalInterface и объявив их в javascript. Таким образом, вы можете активировать функцию actionscript с помощью play() (или любого другого кода, который вам нужен) из вашего кода JavaScript.

Вот пример:

Actionscript:

import flash.external.ExternalInterface;

ExternalInterface.addCallback( "methodName", this, method );
function method() {
   trace("called from javascript");
}

Javascript:

function callAS() {
   swf.methodName(); 
}

Где methodName - это идентификатор, который js использует для вызова метода из actionscript.

3 голосов
/ 21 марта 2009

Взгляните на SWFObject . Есть много примеров того, как этого добиться.

2 голосов
/ 07 января 2012

Здесь предлагается интересный метод: http://www.permadi.com/tutorial/flashjscommand/

У меня работает!

Идея состоит в том, чтобы получить embed объект, используя

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

и впоследствии вызвать его Play() метод.

getFlashMovieObject('MyMovie').Play()

Поддерживается пара других методов, см. Ссылку выше.

2 голосов
/ 03 ноября 2011

Если вы ДОЛЖНЫ сделать это из Javascript, попробуйте включить параметр автозапуска следующим образом:

Предполагается, что вы взяли родителя объекта / встраивания (vidParent):

if( document.all) {
  // toggle the object code (IE)
  vidParent.innerHTML = vidParent.innerHTML.replace(/0\" name=\"autoplay/gi,'1\" name=\"autoplay');
} else {
  // toggle the embed code
  vidParent.innerHTML = vidParent.innerHTML.replace(/autoplay=0/gi,'autoplay=1'); 
}

Это перезагрузит флеш с autoplay = 1 (этот пример работает с плеером YouTube).

Мне пришлось сделать это, чтобы отследить воспроизведение видео.

2 голосов
/ 21 марта 2009

Да, это так. Вы можете ссылаться на объекты Flash-фильма из js и управлять компонентом flash на странице. К сожалению, способ, которым вы это делаете, не переносим во всех браузерах. Смотрите это:

http://www.permadi.com/tutorial/flashjscommand/

1 голос
/ 21 марта 2009

Вы можете вызвать любую пользовательскую функцию во Flash из JavaScript, что требует от вас написания кода как Javascript, так и Flash.

См. Здесь несколько примеров: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683.

Кроме того, использование SwfObject помогает при работе с Flash из JavaScript.

...