June 27, 2001 - Detecting a Flash Movie's Loading Progress | WebReference

June 27, 2001 - Detecting a Flash Movie's Loading Progress

Yehuda Shiran June 27, 2001
Detecting a Flash Movie's Loading Progress
Tips: June 2001

Yehuda Shiran, Ph.D.
Doc JavaScript

In some of your applications you may need to use Flash movies and JavaScript directly, without any prepackaged APIs such as FlashSound JavaScript API. You will enjoy more features, methods, and properties, but you'll have to take care of all the tiny details that are taken for granted when using FlashSound API, for example.

One of the "tiny" details is embedding the Flash object. The JavaScript file flashcheck2.js does exactly this, as well as other stuff. For example, it checks whether a Flash player exists (Flash plug-in or ActiveX control), and whether its version is higher than the minimum required by the application.

Use the TGetProperty() Flash method to get attributes of the Flash movie. One of the properties is FRAMESLOADED. You may get this property, but you cannot set it. The FRAMESLOADED property designates the number of frames already loaded on the page. You get a property like this:

  mySwf.TGetProperty(timeline, propertyNumber);
The FRAMESLOADED property is no. 12, so you get its value by going:

  mySwf.TGetProperty(timeline, 12);
Play the following movie by clicking the Play link. Get the FRAMESLOADED of the movie by clicking the Get FRAMES LOADED link. On short movies, you will experience instant loading. On long movies or on poor connection line, you should see a progress in this paremeter, until it hits the maximum number of frames:

Rewind | Play | Get FRAMES LOADED

Here is the source code:

<SCRIPT LANGUAGE="JavaScript" SRC="flashcheck2.js"></SCRIPT>
<A href="javascript://" onclick="javascript:mySwf2.Rewind(); return false">Rewind</A> | 
<A href="javascript://" onclick="javascript:mySwf2.Play(); return false">Play</A> | 
<A href="javascript://" onclick="javascript:alert(mySwf2.TGetProperty('/', 12)); return false">Get FRAMES LOADED</A>
  var mySwf2 = Flash_embedSWF("opener.swf", "opener");