In my last blog entry discussing a TV’s safe viewing area, I mentioned the Stage.stageWidth and Stage.stageHeight properties of a full-screen application on a TV with a 1080p screen resolution. Let’s look a little more at how to set these and other Stage properties with regard to AIR for TV apps.
Stage.stageWidth and Stage.stageHeight
If you are writing a full-screen AIR for TV application for a specific device, go ahead and hard-code Stage.stageWidth and Stage.stageHeight to the device’s screen resolution. However, to write a full-screen application that runs on multiple devices, use the Capabilities.screenResolutionX and Capabilities.screenResolutionY properties to set your Stage dimensions. For example:
stage.stageWidth = Capabilities.screenResolutionX;
stage.stageHeight = Capabilities.screenResolutionY;
Stage scale mode
Set Stage.scaleMode to StageScaleMode.NO_SCALE, and listen for stage resize events.
stage.scaleMode = StageScaleMode.NO_SCALE;
This scale mode setting results in the following:
- When the application’s window changes size, the stage contents maintain their defined size. The runtime performs no automatic layout or scaling. Also, the runtime dispatches the Stage class’s resize event. Therefore, you have full control over how to adjust the application’s contents when the application begins and when the application window resizes.
- You can use the stageWidth and stageHeight properties of the Stage class to determine the actual pixel dimensions of the application’s window. Therefore, in full-screen applications, these properties correspond to the screenResolutionX and screenResolutionY properties of the Capabilities class.
Set Stage.align to StageAlign.TOP_LEFT:
stage.align = StageAlign.TOP_LEFT;
This alignment places the 0,0 coordinate in the upper-left corner of the screen, which is convenient for content placement using ActionScript. Therefore, this alignment works nicely with StageScaleMode.NO_SCALE, since your application is in charge of layout.
Stage display state
Set Stage.displayState in a full-screen AIR for TV application to StageDisplayState.FULL_SCREEN_INTERACTIVE:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
This value sets the AIR application to expand the stage over the entire screen, with user input allowed.
You can set the Stage.quality property for an AIR for TV application to StageQuality.Best or StageQuality.High, specifying the rendering quality for all Stage objects. For example:
stage.quality = StageQuality.High;