0

我正在使用此代码通过 o​​nclick 命令为图像播放 swf。第一次单击时,我收到“flashMovie.Play 不是函数”错误。在第二次单击时,它可以工作,之后每次都可以。这是否与页面中其他元素的执行顺序冲突?第一次点击发生了什么使第二次点击正常工作?(这在 IE 中有效,但在 Firefox 中无效)

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

<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>
4

1 回答 1

1

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

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

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

附带说明一下,您可能会考虑使用SWFObject,因为它使您在 Flash 和 JavaScript 方面的生活变得更加轻松。

于 2012-06-16T07:36:58.030 回答