[AS2] Fullscreen, Scaled Fullscreen (zoom)

27 05 2008

AS2 Normal fullscreen:

//Rectangle is needed when using hardware scaling.
import flash.geom.Rectangle;
// functions to enter and leave full-screen mode
function goFullScreen()
{
Stage["displayState"] = "fullScreen";
}
function exitFullScreen()
{
Stage["displayState"] = "normal";
}
// function to enable, disable context menu items, based on which mode we are in.
function menuHandler(obj, menuObj)
{
if (Stage["displayState"] == "normal")
{
// if we're in normal mode, enable the 'go full screen' item, disable the 'exit' item
menuObj.customItems[0].enabled = true;
menuObj.customItems[1].enabled = false;
}
else
{
// if we're in full screen mode, disable the 'go full screen' item, enable the 'exit' item
menuObj.customItems[0].enabled = false;
menuObj.customItems[1].enabled = true;
}
}
// create a new context menu
var fullscreenCM:ContextMenu = new ContextMenu(menuHandler);
// hide the regular built-in items
fullscreenCM.hideBuiltInItems();
// now, add the items to enter and leave full screen mode
var fs:ContextMenuItem = new ContextMenuItem("Go Full Screen", goFullScreen);
fullscreenCM.customItems.push( fs );
var xfs:ContextMenuItem = new ContextMenuItem("Exit Full Screen", exitFullScreen);
fullscreenCM.customItems.push( xfs );
// now, attach the context menu to any movieclip in your movie.
// here we attach it to _root, (even though using _root is generally a bad idea,)
// so it will appear if you right click anywhere on the movie.
_root.menu = fullscreenCM;


AS2 Zoom Fullscreen

// An alternate full screen function that uses hardware scaling to display the upper left corner of the stage in full screen.
function goScaledFullScreen(){
trace ("HO")
var screenRectangle:Rectangle = new Rectangle();
screenRectangle.x = 0;
screenRectangle.y = 0;// zoom on 0;0

screenRectangle.width=Stage.width/2;
screenRectangle.height=Stage.height/2;
Stage["fullScreenSourceRect"] = screenRectangle;
Stage["displayState"] = "fullScreen";
}