4

我正在使用开源 OpenMeetings 编写会议门户,这是一个使用 OpenLaszlo 编译的 Flash 应用程序。因此,我可以访问混合了 Laszlo 标记和 JavaScript 的 SWF 源代码,但不能访问 ActionScript。

我遇到的问题是,当用户在 Internet Explorer 中离开应用程序时,他们的麦克风保持连接状态,他们可以听到对方/对方可以听到他们的声音。这意味着 IE 没有正确地销毁 Flash 对象。

我在自己的系统上重现此错误时遇到了麻烦,但它确实发生在我同事的计算机上。

我尝试使用 JavaScript 来捕获卸载事件并将 innerHTML 设置为“”,这会从页面中删除 Flash 对象,但麦克风等仍然保持连接。

这只发生在 Internet Explorer 上。这是我们软件的一个主要错误,因为我们处理教育问题,因此一个学生在不知情的情况下保持“在线”可能会让我们提起诉讼!

4

5 回答 5

2

这里涵盖的选项似乎最适合我们:
http ://blog.vokle.com/index.php/2009/03/10/why-ie-doesnt-drop-flash-netconnections-netstreams-and-how-to -fix-it/
我们还使用 SWFObject 中的“removeSWF”函数,如下所示:

    <!--[if IE]>
    <script type="text/javascript">
        function cleanupForIE() {
            try {
                //get using the id of your swf instance
                var swf = document.getElementById('myswf');  
                swf.disconnect();
            } catch(e) {
                alert("Error on unload: " + e);
            }
            swfobject.removeSWF("flashContent");
        }
        window.attachEvent("onbeforeunload", cleanupForIE);
    </script>
    <![endif]-->  
于 2011-04-29T17:45:09.983 回答
1

不幸的是,我无法提供链接,因为它是一个内部站点。

它只是一个简单的在 div 中嵌入 src="...",在卸载时我将 div 的 innerHTML 设置为 ""。这并没有比关闭浏览器窗口更好,而且我从来没有直接引用嵌入对象,只是引用它包含的 div。我觉得这可能与电影仍在“播放”的事实有关。谷歌上的一些搜索结果有人抱怨类似的问题(关闭浏览器窗口后仍然可以听到 FLV 音频)并且修复似乎明确地从 ActionScript 中停止了电影。(当然我对编译的电影没有这种控制权,它是从 OpenLaszlo 生成的)

于 2009-01-19T15:21:02.630 回答
1

从技术上讲,可以添加该功能 - 如果尚未添加。OpenMeetings 现在是一个Apache Incubator 项目,只需通过邮件列表联系开发人员,他们应该能够为您提供帮助。

于 2012-08-14T14:13:59.057 回答
0

是否存在对该对象的任何 JavaScript 引用?

 //e.g.
 var conf = document.getElementById( 'mySWFObject' );

如果是这样,是否明确调用删除工作?

 delete window.conf;

(否则,您可以发布代码/站点的链接,我们可以检查一下吗?)

于 2009-01-19T15:08:36.557 回答
0

也许您可以询问进行 OpenLaszlo 开发的人是否构建了一个监听 Removed From Stage 事件的 destory 方法。在那里你明确停止所有播放。

于 2009-02-10T09:32:56.617 回答