javascript – flash:ExternalInterface适用于embed标签,但不适用于object标签

前端之家收集整理的这篇文章主要介绍了javascript – flash:ExternalInterface适用于embed标签,但不适用于object标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

据Adobe称,嵌入Flash对象的“现代”更新方式:

        Get Adobe Flash player

尝试在SWF中调用AS3函数时,从Javascript:

     var flashObj = document.getElementById('theFlash');
     flashObj.someASFunction();

(在AS方面:)

     import flash.external.*;
     function someASFunction() {
        //show some text
     }
     ExternalInterface.addCallback("someASFunction",someASFunction);

这在Firefox和Chrome中不起作用.
闪光灯工作和加载. flashObj确实获得了对象的引用,但someASFunction未定义且不会被调用.

如果我用embed标签替换object标签

   

然后它适用于Firefox和Chrome(AS函数调用并正常工作) – (虽然它在IE中不起作用).

怎么用对象标签不起作用?
使用embed标签而不是object标签有多“安全”?它不是过时的吗?

注意,它绝对不是时间问题 – 如果我从一个onclick函数调用JS的AS函数 – 那么结果是相同的.

最佳答案
使用推荐的Adobe方法时,我也无法在FF和Chrome中定位flashmovie.我最终使用以下代码,ExternalInterface在所有浏览器中都运行良好

    

为了定位flash电影,我使用这个java脚本

        function sendDataToFlash(data) {

            getFlashMovie("myFlashMovie").myCallbackInFlash(data);

        }

        function getFlashMovie(movieName) {
            var isIE = navigator.appName.indexOf("Microsoft") != -1;
            if(isIE) return window[movieName];
            else return document[movieName];

        }

猜你在找的JavaScript相关文章