是否可以通过使用javascript代码开始在Flash播放器中播放文件?如果是这样,我该怎么做?
答案 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组件。不幸的是,你这样做的方式是不能跨浏览器移植。见:
答案 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会有很长的路要走。