Working the Workaround
Internet Explorer, for example, lets you get the dimensions of DIV elements on the screen using the offsetHeight property. If you put text in a DIV, set your text size to Largest, and check the offsetHeight property of that DIV, you will notice that it returns a different height! Netscape Navigator and Mozilla offer similar access to the DIV's height, but through the slightly more complex getComputedStyle() function.
For Opera on both Windows machines and Macs, it does not change just the text size, but it also scales the entire page to the specified percent. In this case, the Flash movie does all the work using the Screen object to determine the new percentage that the screen has been zoomed.
With a little more investigation, we were able to put together a list of design guidelines for our text-sizing workaround:
Initially, a hidden frame was to be used to house the text size getter because it will need to make use of some generic elements on the page (such as a DIV). Unfortunately, because of an optimization to the Flash player (or a bug), if a Flash movie is run in a hidden frame, the Stage object (which is used to determine the height of the DIV on the page) returns null values for its height. So, for the Stage object to return the proper values, the Flash movie needs to be visible onscreenat least 1 pixel of it, anyway. The Flash movie will use the LocalConnection object in Flash MX to communicate to your main Flash movie.
Because actual text point sizes are different across browsers and platforms, the percentage that the text has been scaled rather than a specific text point size is passed to the main Flash movie. This percentage can then be used in the main Flash movie to calculate the point size of text or to scale movie clips and text fields to a new size.