1

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

4

6 回答 6

6

尝试使用swfObject,您可以使用 javascript 使任何 actionscript 函数可见,ExternalInterface并将它们声明为 javascript。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 调用方法的标识符。

于 2009-03-20T23:54:12.307 回答
3

看看SWFObject。有很多关于如何做到这一点的例子。

于 2009-03-20T23:55:57.343 回答
2

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

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

于 2009-03-20T23:54:37.267 回答
2

如果您必须从 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 重新加载 Flash(此示例适用于 YouTube 播放器)。

我必须这样做才能对视频播放进行一些跟踪。

于 2011-11-02T21:59:54.663 回答
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()

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

于 2012-01-07T14:25:45.353 回答
1

您可以从 JavaScript 调用 Flash 中的任何自定义函数,这需要您同时编写 Javascript 和 Flash。

有关示例,请参见此处:http: //kb.adobe.com/selfservice/viewContent.do?externalId= tn_15683

此外,在从 JavaScript 处理 Flash 时,使用SwfObject也有很大帮助。

于 2009-03-20T23:56:07.077 回答