flashMovie.Play不是一个函数

flashMovie.Play is not a function

本文关键字:一个 函数 Play flashMovie      更新时间:2023-09-26

我正在使用此代码为图像播放带有onclick命令的swf。第一次点击时,我收到"flashMovie.Play is not a function"错误。在第二次单击时,它可以工作,之后每次。这是否与页面中其他元素的执行顺序冲突?第一次点击时发生了什么,使第二次点击正常工作?(这适用于IE浏览器,但不适用于火狐浏览器)

对此施加某种时间延迟可能会有所帮助吗?关于我如何尝试的任何建议?

<script language="JavaScript">
    function getFlashMovieObject(movieName)
    {
        if (window.document[movieName]) 
        {
            return window.document[movieName];
        }
        if (navigator.appName.indexOf("Microsoft Internet")==-1)
        {
            if (document.embeds && document.embeds[movieName])
                return document.embeds[movieName]; 
        }
        else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
        {
            return document.getElementById(movieName);
        }
    }
    function PlayFlashMovie(name)
    {
        var flashMovie=getFlashMovieObject(name);
        flashMovie.Play();     
    }
</script>

如果在单击按钮之前未加载 Flash 影片,则可能会遇到此问题。我不认为任何特定的时序延迟都是一个好主意;最好弄清楚您到底在等待什么,然后实现正确的处理程序。

例如,如果您在执行某些操作之前等待整个页面加载,而不是有 1 秒的延迟,请实现一个 document.onload 处理程序,如下所示:

document.onload = function () {
    //your code here
}

作为旁注,你可以考虑使用SWFObject,因为它让你在Flash和JavaScript方面的生活变得更加轻松。