我有以下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的情况下调用图形函数,有没有办法做到这一点?感谢。
答案 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();
}
);