Creating Custom Context Menus in Flash

The assets for my 5 minute quick tip talk for the 2011 Adobe Education Leader Institute are located here. This is the completed example (Flash Professional CS5.5):
[download AEL2011_FlashContextMenu]

Here is an image preview:

Custom Context Menus!

Here is the SWF:
[SWF]http://inflagrantedelicto.memoryspiral.com/wp-content/uploads/2011/07/contextmenu.swf, 350, 300[/SWF]

And here be the code bits!

package  {
	import flash.display.Sprite;
	import flash.ui.ContextMenu;
	import flash.ui.ContextMenuItem;
	import flash.ui.ContextMenuBuiltInItems;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	import flash.events.ContextMenuEvent;
	
	public class CustomMenu extends Sprite {
		private const MENUITEM_FVM:String = "©2011 Fractured Vision Media, LLC";
		private const MENUITEM_JOSEPH:String = "Joseph Labrecque";

		public function CustomMenu(){
			buildMenu();
		}
		
		private function buildMenu():void {
			var myMenu:ContextMenu = new ContextMenu();
			myMenu.hideBuiltInItems();
			
			var menuItem0:ContextMenuItem = new ContextMenuItem(MENUITEM_FVM);
			menuItem0.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visitURL);
			
			var menuItem1:ContextMenuItem = new ContextMenuItem(MENUITEM_JOSEPH);
			menuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visitURL);
			menuItem1.separatorBefore = true;
			
			myMenu.customItems.push(menuItem0);
			myMenu.customItems.push(menuItem1);
			
			this.contextMenu = myMenu;
		}
		
		private function visitURL(e:ContextMenuEvent):void {
			var site:String = "";
			switch(e.target.caption){
				case MENUITEM_FVM:
					site = "http://fracturedvisionmedia.com/";
					break;
				case MENUITEM_JOSEPH:
					site = "http://josephLabrecque.com/";
					break;
			}
			navigateToURL(new URLRequest(site), "_blank");
		}

	}
	
}

Leave a Comment

Your email address will not be published. Required fields are marked *