コンテキストメニュー(右クリックメニュー)の実装

業務アプリだとあまり無いが要望によっては実装することもあるコンテキストメニュー。ガジェットとかウィジェットとか作る場合は結構な頻度で実装するかと思います。AIR/Flexの場合は以下のように書くと実装することができます。

private function MakeContextMenu():void {

  //右クリックメニューのオブジェクトを作成
  var ctxMenu:ContextMenu = new ContextMenu();

  //メニューの表示アイテムの作成
  var MenuFront:ContextMenuItem	= new ContextMenuItem("常に手前に表示する");
  var MenuLock:ContextMenuItem	= new ContextMenuItem("位置を固定する");
  var MenuClose:ContextMenuItem	= new ContextMenuItem("終了");
  
  //表示アイテムが選択された時の処理を記述する
  MenuFront.addEventListener(Event.SELECT ,selectAlwaysInFront); //常に手前に表示する
  MenuLock.addEventListener(Event.SELECT  ,selectLockHandler);   //位置を固定する
  MenuClose.addEventListener(Event.SELECT ,selectCloseHandler);  //終了
  
  //メニューに各アイテムを追加する
  ctxMenu.customItems.push(MenuFront
			 ,MenuLock
			 ,MenuClose);
  //実際にこの画面の右クリックメニューに設定する
  this.contextMenu = ctxMenu;
}

これに「//表示アイテムが選択された時の処理を記述する」の三行で指定したファンクションを作ってあげれば
各表示アイテムが選択されたタイミングで処理が発生します。