右クリックで表示される、コンテキストメニューからデフォルトのメニュー、「拡大」や「縮小」、「100%表示」などのメニューを非表示にすることができます。
ContextMenu クラスは、コンテキストメニューに表示するアイテムを制御するクラスです。 デフォルトコンテキストメニューには、ContextMenu.builtInItems プロパティによってアクセスすることができます。
ContextMenu.builtInItems プロパティは、orwardAndBack、loop、play、print、quality、rewind、save、zoom の各プロパティを持つ ContextMenuBuiltInItems クラスのインスタンスです。
ContextMenuBuiltInItems クラスのプロパティ
| プロパティ | 説明 |
|---|---|
| forwardAndBack | ユーザーが実行時に SWF ファイルの 1 フレーム前または後ろに移動できるようにします。単一フレームの SWF ファイルの場合は表示されません。 |
| loop | ユーザーが、最後のフレームに到達したら自動的に最初から再開するように SWF ファイルを設定できるようにします。単一フレームの SWF ファイルの場合は表示されません。 |
| play | ユーザーが一時停止された SWF ファイルを開始できるようにします。単一フレームの SWF ファイルの場合は表示されません。 |
| ユーザーが、表示されているフレームイメージをプリンタに送信できるようにします。 | |
| Inherited | [静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 |
| quality | ユーザーが実行時に SWF ファイルの解像度を設定できるようにします。 |
| rewind | ユーザーが、選択したときにいつでも最初のフレームから再生するように SWF ファイルを設定できるようにします。単一フレームの SWF ファイルの場合は表示されません。 |
| save | Shockmachine がインストールされているユーザーが SWF ファイルを保存できるようにします。 |
| zoom | ユーザーが実行時に SWF ファイルを拡大または縮小できるようにします。 |
これらの各プロパティを false に設定すると、対応するメニューアイテムが、指定した ContextMenu オブジェクトから削除されます。デフォルトでは true に設定されています。
ContextMenu.hideBuiltInItems() メソッドをは、[設定]メニューを除いて、すべてのビルトインメニュ一括して非表示にすることができます。
次の例は、デフォルトのコンテキストメニューをすべて非表示にしてから、quality プロパティのみを有効にし、「画質」メニューのみを表示します。
var cm = new ContextMenu(); cm.hideBuiltInItems(); cm.builtInItems.quality = true; this.contextMenu = cm;
また、ContextMenuItem クラスを使ってオリジナルのコンテキストメニューを追加することもできます。
ContextMenuItem クラスは、コンテキストメニューに表示されるアイテムです。ContextMenuItem オブジェクトには、コンテキストメニューに表示されるテキスト(メニュー名)を指定します。
ContextMenuItem クラスによって作られたメニューは、 ContextMenu.customItems プロパティ(配列)に追加することで、コンテキストメニューに新しいアイテムをとして表示することができます。
menuItemSelect イベントのイベントハンドラを記述して、ユーザーがメニューアイテムを選択したときにメニューアイテムに機能を追加します。
次に例は、コンテキストメニューに新しいメニュー「カスタムメニュー」を追加しています。
package {
import flash.ui.*;
import flash.events.*;
import flash.display.*;
public class ContextMenuExample extends MovieClip {
private var cm:ContextMenu;
private var menuLabel:String = "カスタムメニュー";
public function ContextMenuExample() {
cm = new ContextMenu();
cm.hideBuiltInItems();
var item:ContextMenuItem = new ContextMenuItem(menuLabel);
cm.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
this.contextMenu = cm;
}
private function menuItemSelectHandler(event:ContextMenuEvent):void {
trace(event);
}
}
}
Post your comment