0

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

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

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

谢谢。

4

2 回答 2

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 时调用,将 a 替换div为 id 'flashMovie'。

和:

<button onclick="flashMovie.recording_toggle()">Toggle recording</button>
  • 将“recording_toggle”函数调用发送到 SWF 本身。
于 2013-08-29T10:04:45.953 回答
0

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

于 2013-08-29T09:20:13.677 回答