右クリックメニューを変更する

Windows の右クリック(Mac では Ctrl + クリック)で表示されるメニューを変更するには ContextMenu クラスを用います。
API

サンプルソース

とりあえず最低限のソースを貼り付け。ここではメニュー選択時(例えば、『コピー』というメニューをクリックしたとき)にイベントを発生させています。右クリックされたときのイベントを拾う事もできるので、 API で確認してみてください。
ポイントは ContextMenu を作成した後で this.contextMenu = myContextMenu のように設定してあげないと登録されない点。

// 当たり前ですが、パッケージ名は各々変更して下さい
package jp.ne.sakura.hl2.MyComp
{
	// これらが(ほぼ)必須のライブラリ
	import flash.events.ContextMenuEvent;
	import flash.ui.ContextMenu;
	import flash.ui.ContextMenuBuiltInItems;
	import flash.ui.ContextMenuItem;
	// 以下は必須ではない
	import mx.controls.Alert;
	import mx.controls.TextArea;

	public class ExTextArea extends TextArea
	{
		private var myContextMenu:ContextMenu;
		private var menuLabel:String = "押す";
		
		public function ExTextArea()
		{
			super();
			// 右クリックメニューの初期化
			myContextMenu = new ContextMenu();
			// デフォルトの右クリックメニューを削除
			myContextMenu.hideBuiltInItems(); // hideBuiltInItems はデフォルトのメソッド
			// カスタムした右クリックメニューを登録
			addCustomMenuItems();
			// 右クリックメニューを登録
			this.contextMenu = myContextMenu;
		}
		
		// カスタムした右クリックメニューを登録
		private function addCustomMenuItems():void {
			var item:ContextMenuItem = new ContextMenuItem(menuLabel);
			myContextMenu.customItems.push(item); // customItems はデフォルトで存在するメンバ
			item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
		}
		
		// 右クリックメニューの選択時イベント
		private function menuItemSelectHandler(event:ContextMenuEvent):void {
			Alert.show("ゆっくりしていってね!!!"); // とりあえず Alert を出してみる
		}
		
	}
}

仕様

TextArea のメニューは削除できなかったり、制約も存在します。API にも書いてありますが、使用時には注意して下さい。

ちょっとくわしい解説

例えば、最初から存在する右クリックメニュー(これが ContextMenuBuiltInItems)の一部だけを隠したい場合などは、個別に設定する事も可能です。
上の例で言うと、こんな感じ。

// builtInItems を取得しておく(コードの可読性のため)
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
// クオリティ操作とプリントのメニューだけを隠す
defaultItems.quality = false;
defaultItems.print = false;