July 1, 2001 - Controlling the Movie's Picture Quality | WebReference

July 1, 2001 - Controlling the Movie's Picture Quality

Yehuda Shiran July 1, 2001
Controlling the Movie's Picture Quality
Tips: July 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 TSetProperty() Flash method to set attributes of the Flash movie. One of the properties is HIGHQUALITY. You may both set and get this property. The HIGHQUALITY property designates the level of anti-aliasing applied to the movie. Specify 2 (BEST) to apply high quality with bitmap smoothing always on. Specify 1 (high quality) to apply anti-aliasing; this will smooth bitmaps if the movie does not contain animation. Specify 0 (low quality) to prevent anti-aliasing. You can set and get Flash properties by their sequence numbers. You get a property like this:

  mySwf.TGetProperty(timeline, propertyNumber);
And you set it as follows:

  mySwf.TSetProperty(timeline, propertyNumber, value)
The HIGHQUALITY property is no. 16, so you get its value by going:

  mySwf.TGetProperty(timeline, 16);
And you set it in a similar way:

  mySwf.TSetProperty(timeline, 16, value);
Play the following movie by clicking the Play link. Get the HIGHQUALITY of the movie by clicking the Get HIGHQUALITY link. You should get 1. Set the anti-aliasing to 0 by clicking the Set HIGHQUALITY link. See how the movie quality deteriorated. You can hardly read the banners now. Loading time improved a bit:

Rewind | Play | Get HIGHQUALITY | Set HIGHQUALITY

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('/', 16)); return false">Get HIGHQUALITY</A> | 
<A href="javascript://" onclick="javascript:mySwf2.TSetProperty('/', 16, 0); return false">Set HIGHQUALITY</A>
<SCRIPT LANGUAGE="JavaScript">
  var mySwf2 = Flash_embedSWF("opener.swf", "opener");
</SCRIPT>