Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初学者向Flash专家提出的一个问题:网页中的Flash对象_Flash - Fatal编程技术网

初学者向Flash专家提出的一个问题:网页中的Flash对象

初学者向Flash专家提出的一个问题:网页中的Flash对象,flash,Flash,以下是我对这个问题的解释: 从JavaScript中,需要获取对Flash Player对象的引用。在浏览器中运行的Flash Player有两个基本版本:ActiveX和插件版本。ActiveX版本在Internet Explorer中本机运行,而插件版本由其他浏览器使用 ActiveX播放器由HTML页面中的object标记控制,您可以使用Windows检索JavaScript引用。objectId,其中objectId是对象标记的id属性的值。例如,如果对象标记的id属性是example,

以下是我对这个问题的解释:

从JavaScript中,需要获取对Flash Player对象的引用。在浏览器中运行的Flash Player有两个基本版本:ActiveX和插件版本。ActiveX版本在Internet Explorer中本机运行,而插件版本由其他浏览器使用

ActiveX播放器由HTML页面中的object标记控制,您可以使用Windows检索JavaScript引用。objectId,其中objectId是对象标记的id属性的值。例如,如果对象标记的id属性是example,那么对ActiveX播放器的引用将是window.example

插件播放器由HTML页面中的嵌入标记控制,您可以使用window.document检索JavaScript引用。embedName,其中embedName是嵌入标记的name属性的值。例如,如果嵌入标记的name属性是example,那么对插件播放器的引用将是window.document.example

这就是问题本身:


为什么Flash Player对象通过Object标记嵌入时作为窗口属性存在,而通过embed标记嵌入时,它存在于window.document属性中?从网页中获取Flash Player对象的最现代方式是什么?

答案就在问题本身中。IE使用
对象
标记,因此当嵌入
对象
标记时,SWF是一个
窗口
对象。世界上其他地方都使用
嵌入
标记,因此SWF是
窗口的一个属性。文档
为他们提供。

今天我得到了一件有趣的事情。我使用常用的方法在我的电脑中嵌入一个flash


我还使用常用的方法获取flash参考:

<script type="text/javascript">
    function getFlashMovie(movieName) {   
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];  
    }
    function CallFlashFun() {
        var textarea = document.getElementById("jsMsg")
        var flashObj = getFlashMovie("flashObject");
        flashObj.asFunction(textarea.value);
    }
</script>

函数getFlashMovie(movieName){
var isIE=navigator.appName.indexOf(“Microsoft”)!=-1;
返回(isIE)?窗口[movieName]:文档[movieName];
}
函数CallFlashFun(){
var textarea=document.getElementById(“jsMsg”)
var flashObj=getFlashMovie(“flashObject”);
flashObj.asFunction(textarea.value);
}
问题是在我发表这篇文章之后。它不起作用。因此,我尝试将
window[movieName]
替换为
window.document[movieName]。
然后它就可以工作了。这很奇怪


window[movieName]、document[movieName]和window.document[movieName]之间有什么不同?

仍然可以最可靠地实现这一点。如此之多以至于Adobe将其作为默认嵌入脚本。

对不起,当我尝试获取对象时,它在IE 6中不起作用,如:var o=window.flashId;但是当我得到这样的对象时:var o=window[flashId];或者类似的:var o=document[flashId];-它在我的IE 6中工作。那么,人们究竟是如何得到这个物体的呢???如何做对?
<script type="text/javascript">
    function getFlashMovie(movieName) {   
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];  
    }
    function CallFlashFun() {
        var textarea = document.getElementById("jsMsg")
        var flashObj = getFlashMovie("flashObject");
        flashObj.asFunction(textarea.value);
    }
</script>