DekGenius.com
[ Team LiB ] Previous Section Next Section

Recipe 10.4 Formatting Milliseconds as Minutes and Seconds

10.4.1 Problem

You want to display milliseconds in minutes and seconds (mm:ss) format.

10.4.2 Solution

Create and use a custom, static method, Date.formatMilliseconds( ).

10.4.3 Discussion

Many values in ActionScript are given in milliseconds. For example, sound lengths are given in milliseconds. However, in most cases, you want to format the value as minutes and seconds when displaying it to the user. You can accomplish this with a short custom method that we'll add to the Date class.

Here's our static method—a static method is called directly from the class, rather than on an object instance—that converts milliseconds to the format mm:ss. Add this code to your Date.as file for easy inclusion in other projects.

Date.formatMilliseconds = function (millis) {

  // Determine the minutes and seconds portions of the time.
  var seconds = millis / 1000;
  var m = Math.floor(seconds/60);
  var s = Math.round(seconds - (m * 60));

  // Add leading zeros to one-digit numbers.
  if (m < 10) {
    m = "0" + m;
  }
  if (s < 10) {
    s = "0" + s;
  }
  return m + ":" + s;
};

Here's an example of how you can use this method:

#include "Date.as"

// Assuming mySound_sound is a Sound object, get its duration in milliseconds.
dur = mySound_sound.duration;

// Create a text field to display the value.
this.createTextField("displayTime_txt", 1, 0, 0, 100, 20);

// Display the time value formatted as mm:ss.
displayTime_txt.text = Date.formatMilliseconds(dur);

10.4.4 See Also

Recipe 10.3 and Recipe 10.5

    [ Team LiB ] Previous Section Next Section