单击 javascript 按钮时播放 SWF

Posted

技术标签:

【中文标题】单击 javascript 按钮时播放 SWF【英文标题】:Play an SWF when a javascript button is clicked 【发布时间】:2013-09-01 14:58:06 【问题描述】:

我是 javascript 和 Flash 的新手,我正在开发浏览器 Flash 录像机。

现在,当我将浏览器定向到某个 URL 时,它会请求访问网络摄像头的权限并开始录制 - 并流式传输到 Ubuntu 上的 Red5 服务器。

我现在需要添加一个 javascript 按钮,单击该按钮将开始录制,再次单击时将停止录制。有人可以告诉我如何仅在单击按钮时播放 .swf 文件吗?以及再次点击按钮时如何停止播放?

谢谢。

【问题讨论】:

【参考方案1】:

正如 Pete 所说,ExternalInterface 无疑是在 SWF 和周围的 html 页面之间进行函数调用所需要的。

您还可以使用swfobject 进行跨浏览器兼容的 SWF 动态嵌入/加载到页面中。

我在此处对您正在寻找的两个功能做了一个小演示:http://akineticblog.com/fl/ExtIntDemo/index.html

AS3 代码是:

import flash.external.ExternalInterface;

var recording:Boolean = false;

//These are two TextFields instantiated on the stage as visual indicators
recordingTF.visible = false;
notRecordingTF.visible = true;

function recording_toggle():void 
    recording = ! recording;

    //Your actual record start/stop code would go here//
    recordingTF.visible = recording;
    notRecordingTF.visible = ! recording;


if (ExternalInterface.available) 
    //This registers the AS3-side function to the JS-side reference
    ExternalInterface.addCallback("recording_toggle", recording_toggle);

对于HTML/JS端,可以查看上面链接的页面源码,但主要部分是:

function swf_load() 
    swfobject.embedSWF("ExtIntDemo.swf", "flashMovie", "500", "250", "10.1", "swf/expressinstall.swf", flashvars, params, attributes);
;

- 在您想要加载 SWF 时调用,将 div 替换为 id 'flashMovie'。

还有:

<button onclick="flashMovie.recording_toggle()">Toggle recording</button>
将“recording_toggle”函数调用发送到 SWF 本身。

【讨论】:

这并不能完全回答问题 - 但它确实帮助了我。谢谢。 :)【参考方案2】:

您可以使用ExternalInterface 在 JavaScript 和 AS3 之间进行通信。之后,只需让按钮调用您想要执行的 AS3 功能即可。

【讨论】:

点击按钮时有没有办法“加载”现成的SWF? 在页面加载时站点上是否已经存在 SWF,或者您想动态嵌入 SWF?如果您只想嵌入 SWF,您可以使用 SWFObject-library 来为您工作(参见 an example)。在任何情况下,如果您想要一个对 SWF 执行某些操作的 JavaScript 按钮,您需要使用 ExternalInterface。

以上是关于单击 javascript 按钮时播放 SWF的主要内容,如果未能解决你的问题,请参考以下文章

单击播放按钮时,Youtube 视频在 webView 中显示黑屏

使用 Javascript/Jquery 停止 html 声音

带有 Javascript 功能的引导轮播播放和暂停

Javascript - 仅在 DOM 中可见 div 时播放音频

使用javascript淡入/淡出播放/暂停音乐

单击按钮时的音频播放问题