Hi-DPI Macbook Pro support in Flash/AIR

A very cool toy Apple gave us a few days before is the new Macbook Pro with Retina screen. The super high resolution of that MAC provides a significant improvement of display effect. But it also gives a new problem to all Flash/AIR developer and their applications.

When you try to call Capabilities.screenResolutionX and Capabilities.screenResolutionY, it will always tell you 1440 * 900 (the resolution of the old Macbook Pro 15). If you try Capabilities.screenDPI, 72 will be returned.

It’s not good, is it? Then how can we know if we are running on a Retina screen or a regular screen? The answer currently is NO. The current Flash SDK doesn’t support geting the “real” resolution of the Retina screen. It cannot provide the scale factor either. One article mentioned Adobe is working on it in the new FlashPlayer.

Ok, so what we can do now? Not much actually :). But if your application is the one runs in the web browser, you will have a little luck than others. The new Safari in Mountain Lion supports rendering high quality text and high res assets in FlashPlayer. But it’s only happen in Safari. Even the latest Google Chrome doesn’t get it right. But you might also want to replace your asset from JPG or PNG to SWF (or any other vector graphic).

Check the screen shot in Safari

And in Chrome

As you can see, Safari renders text and high-res PNG files much better than Chrome. If you are an AIR application developer, I’m sorry but you are so un-lucky. AIR in Mountain Lion supports Retina screen not well as expected. We have to wait for another update from Adobe to make AIR works better on MAC.