I have the following 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>
I would like to call the graph function only if the swf has not been loaded yet, is there a way to do this? Thanks.
The swfobject callback only returns success if the DOM element was successfully created. It doesn't actually say anything about whether or not the SWF has loaded.
From the swfobject documentation:
The last argument to
embedSWF
is a callback function that is invoked when the swf has been embedded. It takes in an event object with a couple of properties denoting success/failure, etc. More on this at theswfobject
documentation.Use SWFObject to embed the SWF, then use the callback function to poll the SWF's
PercentLoaded
value.If the value is 0, the SWF has not loaded yet. When it hits 100, the SWF is fully loaded.
Here's a tutorial for polling
PercentLoaded
, complete with code examples.