O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

5.11. Generating a Unique Number

Problem

You want to generate a unique number to append to a URL to prevent the browser from retrieving the asset from the local cache.

Solution

Use the number of milliseconds elapsed since January 1, 1970, as returned by Date( ).getTime( ).

Discussion

Unique numbers are most commonly used to generate a unique URL (to prevent an asset from being retrieved from the local cache). That is, by appending a unique number to the end of a URL, it is unlike any previous URL; therefore, the browser obtains the data from the remote server instead of the local cache.

Assuming you need a unique number less frequently than once per millisecond, the number of milliseconds returned by Date( ).getTime( ) is essentially unique (at least during the execution of your movie).

Note that you do not want to use the milliseconds of an existing Date object because its time value doesn’t automatically increase as your movie runs. Instead, generate a new Date object representing “now” each time you need to extract a unique number.

Here, we define our custom Math.getUniqueID( ) method to encapsulate the code to generate the unique number. By default, the method automatically generates a new value each time it is called. However, if you pass it a useCached parameter of true, the method returns the same ID that it generated the last time it was called. This can be useful if you want to create a single ID for a movie and access it multiple times.

Math.getUniqueID = function (useCached) ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required