package { import flash.display.Graphics; import flash.display.MovieClip; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.ui.ContextMenu; import flash.ui.ContextMenuItem; import flash.ui.ContextMenuBuiltInItems; import flash.events.ContextMenuEvent; public class ContextMenuExample extends MovieClip { private var CM:ContextMenu; public function ContextMenuExample() { super(); addEventListener(Event.ADDED_TO_STAGE, onStage); } private function onStage(e:Event):void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; var item_circle1:ContextMenuItem = new ContextMenuItem("Draw a Circle"); item_circle1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onCircle); var item_circle10:ContextMenuItem = new ContextMenuItem("Draw Ten Circles"); item_circle10.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onTenCircles); var item_circle50:ContextMenuItem = new ContextMenuItem("Draw Fifty Circles"); item_circle50.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onFiftyCircles); var item_clear:ContextMenuItem = new ContextMenuItem("Clear Stage"); item_clear.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onClear); CM = new ContextMenu(); CM.hideBuiltInItems(); CM.customItems.push(item_circle1); CM.customItems.push(item_circle10); CM.customItems.push(item_circle50); CM.customItems.push(item_clear); contextMenu = CM; } private function onCircle(e:ContextMenuEvent) { drawCircles(1); } private function onTenCircles(e:ContextMenuEvent) { drawCircles(10); } private function onFiftyCircles(e:ContextMenuEvent) { drawCircles(50); } private function onClear(e:ContextMenuEvent) { graphics.clear(); } private function drawCircles(n:Number):void { var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var i:Number = 0; while (i++ < n) { var f:Boolean = (Math.random() < .5); var c1:Number = f ? 0x000000 : 0xffffff; var c2:Number = !f ? 0x000000 : 0xffffff; var r:Number = Math.min(w,h) * (Math.random()*.15+.02); var a:Number = Math.random() * .8 + .2 if (f) { graphics.beginFill(c1, a); } graphics.lineStyle(Math.random()*7+2, c2); graphics.drawCircle(r+Math.random()*(w-r-r), r+Math.random()*(h-r-r), r); if (f) { graphics.endFill(); } } } } }