HOWTO: Using the ContextMenu in AS3 with FullScreen Mode As a Sample
Right clicking and other mouse support in flash is not really a shining star but in AS2/AS3 you *can* stuff the context menu with items. You can clear out all but Settings and About from the menu and stuff in other items that may pertain to a selected movieclip or the entire app you are building. This can be good when adding multiple functions into applications and for extra functions that you want to make available from a quick location such as full screen, selecting an item etc.
To enable a context menu for full screen capabilities take this example:
1) Make your document class of your AS3 Flash CS3 file to the class below.
package { import flash.display.*; import flash.errors.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.net.*; import flash.media.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public class FullScreenTest extends MovieClip { public function FullScreenTest() { // create the context menu, remove the built-in items, // and add our custom items var fullscreenCM:ContextMenu = new ContextMenu(); fullscreenCM.addEventListener(ContextMenuEvent.MENU_SELECT, onContextMenuHandler); fullscreenCM.hideBuiltInItems(); var fs:ContextMenuItem = new ContextMenuItem("Show Full Screen" ); fs.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onShowFullScreen); fullscreenCM.customItems.push( fs ); var xfs:ContextMenuItem = new ContextMenuItem("Exit Full Screen"); xfs.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onShowNormalScreen); fullscreenCM.customItems.push( xfs ); // THIS ASSUMES YOU HAVE A MOVIECLIP IN THE LIBRARY // THAT IS SET TO A CLASS NAMED 'mc' that inherits from MovieClip var m:MovieClip = new mc(); m.contextMenu = fullscreenCM; addChild(m); } // functions to enter and leave full screen mode function onShowFullScreen(event:ContextMenuEvent):void { stage.displayState = StageDisplayState.FULL_SCREEN; } function onShowNormalScreen(event:ContextMenuEvent):void { stage.displayState = StageDisplayState.NORMAL; } // function to enable and disable the context menu items, // based on what mode we are in. function onContextMenuHandler(event:ContextMenuEvent):void { if (stage.displayState == StageDisplayState.NORMAL) { event.target.customItems[0].enabled = true; // show full screen button event.target.customItems[1].enabled = false; // hide normal screen button } else { event.target.customItems[0].enabled = false; // hide full screen button event.target.customItems[1].enabled = true; // shoe normal screen button } } } }
2) Now Export to HTML and be sure to change the exported parameters in the HTML file to allowFullScreen = true (for the fullscreen effect) and menu = true (for the ability to add in context menu items) to whatever library you use for embedding flash:
'menu', 'true', 'allowFullScreen', 'true'
OR if using HTML parameters
<param name="allowFullScreen" value="true" /> <param name="menu" value="true" />
You can view a sample here. (right click on the movie clip and ’show full screen’, then ‘hide full screen’)
You can download a sample FlashCS3/AS3 version here.
If you want more information on fullscreen check here and here (downloadable sample and component).
