如何从javascript启动Flash视频?

时间:2009-03-20 23:43:26

标签: javascript flash playback

是否可以通过使用javascript代码开始在Flash播放器中播放文件?如果是这样,我该怎么做?

6 个答案:

答案 0 :(得分:6)

尝试使用swfObject,您可以使用ExternalInterface为javascript显示任何actionscript函数,并将其声明为javascript。因此,您可以使用javascript代码中的play()(或您想要的任何其他代码)触发actionscript函数。

以下是一个例子:

的ActionScript:

import flash.external.ExternalInterface;

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

使用Javascript:

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

其中methodName是js用于从actionscript调用方法的标识符。

答案 1 :(得分:3)

看看SWFObject。有很多关于如何实现这一目标的例子。

答案 2 :(得分:2)

是的。您可以从js引用flash影片对象并控制页面中的flash组件。不幸的是,你这样做的方式是不能跨浏览器移植。见:

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

答案 3 :(得分:2)

如果您必须从Javascript中执行此操作,请考虑翻转自动播放参数,如下所示:

假设您已经抓住了object / embed(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播放器)。

我必须这样做才能跟踪视频播放。

答案 4 :(得分:2)

这里建议使用一种有趣的方法: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()

支持其他几种方法,请参阅上面的链接。

答案 5 :(得分:1)

您可以通过JavaScript调用Flash中的任何自定义函数,这需要您对Javascript和Flash进行编码。

请参阅此处了解一些示例:http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683

此外,在使用JavaScript处理Flash时,使用SwfObject会有很长的路要走。