如何使用swfobject使用JavaScript加载swf?

时间:2010-10-15 05:06:44

标签: javascript swfobject

我有以下swf:

    <head>
    # load js
    <script>
    function graph() {
     swfobject.embedSWF(
     "open-flash-chart.swf", "chart", "400", "180", "9.0.0", "expressInstall.swf",
     {"data-file":"{% url monitor-graph %}"});
        };
    </script></head>

<div id="chart"> </div>
<script>
graph();
</script>

我只想在尚未加载swf的情况下调用图形函数,有没有办法做到这一点?感谢。

3 个答案:

答案 0 :(得分:10)

使用SWFObject嵌入SWF,然后使用回调函数轮询SWF的PercentLoaded值。

如果值为0,则SWF尚未加载。当它达到100时,SWF已满载。

这是一个tutorial for polling PercentLoaded,包含代码示例。

答案 1 :(得分:0)

如果成功创建了DOM元素,则swfobject回调仅返回成功。它实际上并未说明SWF是否已加载。

来自swfobject文档:

  

注意:如果所需的最小Flash播放器可用并且创建了SWF的Flash插件DOM元素,则成功报告为true。 SWFObject无法检测swf文件请求是否实际已加载。

答案 2 :(得分:-6)

embedSWF的最后一个参数是一个在嵌入swf时调用的回调函数。它接收一个事件对象,其中包含一些表示成功/失败的属性等。swfobject documentation上的更多信息。

swfobject.embedSWF(
 "open-flash-chart.swf", "chart", "400", "180", "9.0.0", "expressInstall.swf",
 {"data-file":"{% url monitor-graph %}"}, {}, {}, 
   function(e) {
     if(e.success) graph();
   }
 );