2011-06-12 71 views
1

目前有一个非常基本的Flash项目,连接到一个RTMP服务器,并从网络摄像头流式传输视频&音频。它从具有特定名称的用户创建流。如何通过Javascript与Flash进行交互?

同样在同一个项目中,还有一个其他实体可以传输流名称的输入。因此,您可以使用Skype与Flash进行视频聊天。

在flash中,我可以控制何时开始发布自己的流以及何时想播放其他人的流。

我想弄清楚如何通过Javascript控制Flash函数(StartPublish,StartStream等)。我在看http://osflash.org/projects/flashjs,想知道我是否正确。

回答

6

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html

ExternalInterface类被用于此目的而设计的。这是一个将actionscript函数暴露给JS的相对简单的类,反之亦然。我最近在一个音频播放器中实现了它,我的团队开发了一个HTML格式的曲目列表触发播放和停止事件。

从本质上讲,您可以首先检查ExternalInterface.available以确保容器具有外部接口(IE浏览器窗口中的IE浏览器使用javascript,而不仅仅是从Flash播放器运行)。您可以使用addCallback指定一个函数,然后可以在Flash小程序的容器上调用。

然后,您可以使用典型的javascript调用它 - 只需使用getElementByID访问容器的方法,或者如果您使用框架,则选择任何您喜欢的选择器风格。

确保您的嵌入方法允许脚本访问Flash小程序。