| パッケージ | flash.ui |
| クラス | public final class ContextMenu |
| 継承 | ContextMenu NativeMenu EventDispatcher Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
モバイルブラウザーのサポート:このクラスはモバイルブラウザーではサポートされません。
AIR プロファイルのサポート:この機能はモバイルデバイスまたは AIR for TV デバイスではサポートされません。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。
Flash Player では、ユーザーは Flash Player を右クリックするか(Windows または Linux)、Control キーを押しながらクリックする(Macintosh)ことにより、コンテキストメニューを開きます。ContextMenu クラスのメソッドとプロパティを使用すると、カスタムメニューアイテムを追加し、ビルトインコンテキストメニューアイテム([ズームイン]、[プリント] など)の表示を制御し、新しいメニューを作成することができます。AIR には、ビルトインのアイテムや標準のコンテキストメニューはありません。
Flash Professional では、ContextMenu オブジェクトは、特定のボタンやムービークリップ、テキストフィールドオブジェクト、またはムービー全体に関連付けることができます。これを行うには、InteractiveObject クラスの contextMenu プロパティを使用します。
Flex または Flash Builder では、アプリケーション内の最上位レベルのコンポーネントだけにコンテキストメニューがあります。例えば、DataGrid コントロールが TabNavigator コンテナまたは VBox コンテナの子である場合、DataGrid コントロールは独自のコンテキストメニューを持つことができません。
ContextMenu オブジェクトに新しいアイテムを追加するには、ContextMenuItem オブジェクトを作成し、そのオブジェクトを ContextMenu.customItems 配列に追加します。コンテキストメニューアイテムの作成について詳しくは、ContextMenuItem クラスを参照してください。
Flash Player には 3 種類のコンテキストメニューがあります。これらは、Flash Player を右クリックしたときに表示される標準メニュー、選択可能テキストフィールドまたは編集可能テキストフィールドを右クリックしたときに表示される編集メニュー、Flash Player への SWF ファイルのロードが失敗したときに表示されるエラーメニューです。ContextMenu クラスで修正できるのは、標準メニューと編集メニューだけです。AIR に表示されるのは、編集メニューだけです。
カスタムメニューアイテムは、常に Flash Player コンテキストメニューの一番上に、つまり、表示されるどのビルトインメニューアイテムよりも上に表示されます。ビルトインメニューアイテムとカスタムメニューアイテムの間にはセパレーターが表示されます。 コンテキストメニューから「設定」メニューアイテムを削除することはできません。「設定」メニューアイテムは、ユーザーがプライバシーやコンピューターの記憶領域に関連する設定を変更できるように用意されているもので、Flash に必須のメニューアイテムです。また、使用している Flash Player のバージョンをユーザーが確認するために必要な「Adobe Flash Player x について」メニューアイテムも削除できません。 (AIR では、「設定」および「Adobe Flash Player x について」メニューのビルトインアイテムは使用されません。)
Flash Player のコンテキストメニューに追加できるカスタムアイテムは 15 アイテム以内です。AIR には、コンテキストメニューのアイテム数に対する明示的な制限はありません。
ContextMenu オブジェクトのメソッドを呼び出す前に、ContextMenu() コンストラクターを使用して ContextMenu オブジェクトを作成する必要があります。
関連する API エレメント
| プロパティ | 定義元 | ||
|---|---|---|---|
| builtInItems : ContextMenuBuiltInItems
ContextMenuBuiltInItems クラスのインスタンスには、forwardAndBack、loop、play、print、quality、rewind、save、および zoom の各プロパティがあります。 | ContextMenu | ||
| clipboardItems : ContextMenuClipboardItems
ContextMenuClipboardItems クラスには、cut、copy、paste、delete、selectAll の各プロパティがあります。 | ContextMenu | ||
| clipboardMenu : Boolean
クリップボードメニューを使用するかどうかを指定します。 | ContextMenu | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | |
| customItems : Array
ContextMenuItem オブジェクトの配列です。 | ContextMenu | ||
| isSupported : Boolean [静的] [読み取り専用]
現在のプラットフォームで ContextMenu クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。 | ContextMenu | ||
| items : Array [オーバーライド]
このメニューのカスタムアイテムの配列です。 | ContextMenu | ||
| link : URLRequest
リンクの URLRequest です。 | ContextMenu | ||
| numItems : int [オーバーライド] [読み取り専用]
このメニュー内のアイテムの数です。 | ContextMenu | ||
![]() | parent : NativeMenu [読み取り専用]
親メニューです。 | NativeMenu | |
| メソッド | 定義元 | ||
|---|---|---|---|
ContextMenu オブジェクトを作成します。 | ContextMenu | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | |
![]() |
メニューの下部に、メニューアイテムを追加します。 | NativeMenu | |
[オーバーライド]
メニューの下部に、メニューアイテムを追加します。 | ContextMenu | ||
![]() |
新しいメニューアイテムを挿入して、メニューにサブメニューを追加します。 | NativeMenu | |
![]() |
指定された位置に新しいメニューアイテムを挿入して、メニューにサブメニューを追加します。 | NativeMenu | |
[オーバーライド]
指定された ContextMenu オブジェクトのコピーを作成します。 | ContextMenu | ||
[オーバーライド]
このメニューが、指定されたメニューアイテムを含むかどうかを報告します。 | ContextMenu | ||
![]() |
イベントをイベントフローに送出します。 | EventDispatcher | |
[オーバーライド]
このメニューを、指定された位置にポップアップ表示します。 | ContextMenu | ||
[オーバーライド]
指定されたインデックス位置にあるメニューアイテムを取得します。 | ContextMenu | ||
![]() |
指定された名前を持つメニューアイテムを取得します。 | NativeMenu | |
[オーバーライド]
指定されたアイテムの位置を取得します。 | ContextMenu | ||
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
「設定」を除き、指定された ContextMenu オブジェクト内のすべてのビルトインメニューアイテムを非表示にします。 | ContextMenu | ||
![]() |
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
[オーバーライド]
メニューからすべてのアイテムを削除します。 | ContextMenu | ||
![]() |
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | |
![]() |
指定されたメニューアイテムを削除します。 | NativeMenu | |
[オーバーライド]
指定されたインデックス位置にあるメニューアイテムを削除して返します。 | ContextMenu | ||
![]() |
指定された位置に、メニューアイテムを移動します。 | NativeMenu | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
![]() |
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | [ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
![]() | [ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
![]() | メニューが表示される直前に、この NativeMenu オブジェクトから送出されます。 | NativeMenu | ||
| ユーザーが最初にコンテキストメニューを生成したときに、コンテキストメニューの内容が表示される前に送出されます。 | ContextMenu | |||
![]() | ショートカットキーが押され、メニューが表示される直前に、NativeMenu オブジェクトから送出されます。 | NativeMenu | ||
![]() | いずれかのメニューアイテム、またはその子孫のサブメニューのいずれかのアイテムが選択された場合に、この NativeMenu オブジェクトから送出されます。 | NativeMenu | ||
builtInItems | プロパティ |
builtInItems:ContextMenuBuiltInItems| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ContextMenuBuiltInItems クラスのインスタンスには、forwardAndBack、loop、play、print、quality、rewind、save および zoom の各プロパティがあります。これらのプロパティを false に設定すると、対応するメニューアイテムが、指定した ContextMenu オブジェクトから削除されます。これらのプロパティは列挙することができ、デフォルトでは true に設定されています。
注意:AIR では、コンテキストメニューにビルトインアイテムはありません。
実装
public function get builtInItems():ContextMenuBuiltInItems public function set builtInItems(value:ContextMenuBuiltInItems):void関連する API エレメント
clipboardItems | プロパティ |
clipboardItems:ContextMenuClipboardItems| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
ContextMenuClipboardItems クラスのインスタンスには、cut、copy、paste、delete、selectAll の各プロパティがあります。これらのプロパティのいずれかを false に設定すると、クリップボードメニューの対応するアイテムが無効になります。
実装
public function get clipboardItems():ContextMenuClipboardItems public function set clipboardItems(value:ContextMenuClipboardItems):void関連する API エレメント
例 ( この例の使用方法 )
clipboardItems プロパティ(ContextMenu オブジェクトのプロパティ)の使用方法を示します。 ContextMenu を作成し、その clipboardMenu プロパティを true に設定します。MENU_SELECT イベント(通常は右クリック)のイベントハンドラーを追加し、そのメニューを表示オブジェクトに割り当てます。この場合、copy および paste メニューを使用できます。
package {
import flash.ui.ContextMenu;
import flash.events.ContextMenuEvent;
import flash.display.Sprite;
public class ContextMenuClipboardItemsExample extends Sprite {
public function ContextMenuClipboardItemsExample() {
var myContextMenu:ContextMenu = new ContextMenu();
myContextMenu.clipboardMenu = true;
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
var rc:Sprite = new Sprite();
rc.graphics.beginFill(0xDDDDDD);
rc.graphics.drawRect(0,0,100,30);
addChild(rc);
rc.contextMenu = myContextMenu;
}
function menuSelectHandler(event:ContextMenuEvent):void {
event.contextMenuOwner.contextMenu.clipboardItems.copy = true;
event.contextMenuOwner.contextMenu.clipboardItems.paste = true;
}
}
}
clipboardMenu | プロパティ |
clipboardMenu:Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
クリップボードメニューを使用するかどうかを指定します。この値が true の場合、clipboardItems プロパティはクリップボードメニューで、どのアイテムが有効または無効になっているかを決定します。
link プロパティが null 以外の場合、この clipBoardMenu プロパティは無視されます。
実装
public function get clipboardMenu():Boolean public function set clipboardMenu(value:Boolean):voidcustomItems | プロパティ |
customItems:Array| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ContextMenuItem オブジェクトの配列です。配列内の各オブジェクトは、定義したカスタムコンテキストメニューアイテムを表します。このプロパティを使用して、これらのカスタムメニューアイテムを追加、削除、変更することができます。
新しいメニューアイテムを追加するには、ContextMenuItem オブジェクトを作成し、このオブジェクトを customItems 配列に追加します。このとき、Array.push() などを使用します。メニューアイテムの作成について詳しくは、ContextMenuItem クラスを参照してください。
実装
public function get customItems():Array public function set customItems(value:Array):void関連する API エレメント
isSupported | プロパティ |
items | プロパティ |
link | プロパティ |
link:URLRequest| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
リンクの URLRequest です。このプロパティが null の場合、通常のコンテキストメニューが表示されます。このプロパティが null でない場合、リンクのコンテキストメニューが表示され、指定された url で動作します。
link が指定されている場合、clipboardMenu プロパティは無視されます。
デフォルト値は null です。
実装
public function get link():URLRequest public function set link(value:URLRequest):void numItems | プロパティ |
ContextMenu | () | コンストラクター |
public function ContextMenu()| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ContextMenu オブジェクトを作成します。
関連する API エレメント
addItemAt | () | メソッド |
override public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
メニューの下部に、メニューアイテムを追加します。
コンテキストメニューを作成する場合は、NativeMenuItem または ContextMenuItem オブジェクトのいずれかを追加できます。ただし、メニュー内のすべてのアイテムが同じプロパティを持つようにするため、コンテキストメニューでは 1 つの型のオブジェクトのみを使用することをお勧めします。
パラメーター
item:NativeMenuItem — メニューの下部に追加するアイテムです。
| |
index:int |
NativeMenuItem |
例外
ArgumentError — item が null の場合。
| |
ArgumentError — item が別のメニューのメンバーである場合。
|
clone | () | メソッド |
override public function clone():NativeMenu| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
指定された ContextMenu オブジェクトのコピーを作成します。このコピーは、元のメニューオブジェクトのすべてのプロパティを継承しています。
戻り値NativeMenu — 元のメニューオブジェクトのすべてのプロパティが設定された ContextMenu オブジェクトです。
|
containsItem | () | メソッド |
override public function containsItem(item:NativeMenuItem):Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
このメニューが、指定されたメニューアイテムを含むかどうかを報告します。
パラメーター
item:NativeMenuItem — 検索対象のアイテムです。
|
Boolean — true(item がこのメニューに存在する場合)。
|
display | () | メソッド |
override public function display(stage:Stage, stageX:Number, stageY:Number):void| ランタイムバージョン: | AIR 1.0 |
このメニューを、指定された位置にポップアップ表示します。
注意:Flash Player では、このメソッドはサポートされていません。
パラメーター
stage:Stage — このメニューが表示される Stage オブジェクトです。
| |
stageX:Number — このメニューを表示するステージの起点を基準とした、水平方向のピクセル数です。
| |
stageY:Number — このメニューが表示されるステージの起点を基準にした垂直方向のピクセル数です。
|
getItemAt | () | メソッド |
override public function getItemAt(index:int):NativeMenuItem| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
指定されたインデックス位置にあるメニューアイテムを取得します。
パラメーター
index:int — 0 から始まる、返すアイテムの位置です。
|
NativeMenuItem — メニューの指定された位置にあるアイテムです。
|
例外
RangeError — index が、メニューの items 配列の範囲外の場合。
|
getItemIndex | () | メソッド |
override public function getItemIndex(item:NativeMenuItem):int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 |
指定されたアイテムの位置を取得します。
パラメーター
item:NativeMenuItem — 検索対象の NativeMenuItem オブジェクトです。
|
int — 指定されたアイテムの 0 から始まるこのメニューでの位置、または -1(アイテムがこのメニューに存在しない場合)です。
|
hideBuiltInItems | () | メソッド |
public function hideBuiltInItems():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
「設定」を除き、指定された ContextMenu オブジェクト内のすべてのビルトインメニューアイテムを非表示にします。デバッガー版の Flash Player が実行されている場合、デバッグのメニューアイテムは表示されますが、リモートデバッグが有効化されていない SWF ファイルについては、デバッグのメニューアイテムはグレー表示されます。
このメソッドは、標準コンテキストメニューに表示されるメニューアイテムだけを非表示にします。編集メニューおよびエラーメニューに表示されるメニューアイテムには影響しません。
このメソッドは、 my_cm .builtInItems に含まれるブール型プロパティをすべて false に設定するという形で機能します。 my_cm .builtInItems 内の対応するアイテムを true に設定すれば、個々のビルトインアイテムを選択的に表示させることができます。
注意:AIR では、コンテキストメニューにビルトインアイテムはありません。このメソッドを呼び出しても無効です。
関連する API エレメント
removeAllItems | () | メソッド |
removeItemAt | () | メソッド |
override public function removeItemAt(index:int):NativeMenuItem| ランタイムバージョン: | AIR 1.0 |
指定されたインデックス位置にあるメニューアイテムを削除して返します。
パラメーター
index:int — 0 から始まる、削除するアイテムの位置です。
|
NativeMenuItem — 削除された NativeMenuItem オブジェクトです。
|
menuSelect | イベント |
flash.events.ContextMenuEventプロパティ ContextMenuEvent.type =
flash.events.ContextMenuEvent.MENU_SELECT| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ユーザーが最初にコンテキストメニューを生成したときに、コンテキストメニューの内容が表示される前に送出されます。これにより、コンテキストメニューを表示する前に、プログラムによってコンテキストメニューアイテムのセットを変更できます。ユーザーは、ポインティングデバイスを右クリックすることにより、コンテキストメニューを生成します。
type プロパティ(menuSelect イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
contextMenuOwner | メニューが関連付けられている表示リストオブジェクトです。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
mouseTarget | ユーザーがコンテキストメニューを表示するために右クリックした表示リストオブジェクトです。 |
target | 表示される ContextMenu オブジェクトです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
ContextMenuExample クラスを使用して、デフォルトのコンテキストメニューアイテムをステージから削除し、新しいメニューアイテムを追加します。新しいメニューアイテムをクリックすると、ステージ上の四角形の色が変更されます。これを行うには、以下の手順を実行します。
myContextMenuプロパティが宣言されて、新しい ContextMenu オブジェクトに割り当てられます。次に Sprite 型のredRectangleプロパティが宣言されます。removeDefaultItems()メソッドが呼び出されます。このメソッドによって、すべてのビルトインコンテキストメニューアイテムが削除されます。ただし、「プリント」を除きます。addCustomMenuItems()メソッドが呼び出され、Red to Blackメニュー選択というメニューアイテムがdefaultItems配列に配置されます。このとき、配列のpush()メソッドが使用されます。menuItemSelectイベントリスナーが ContextMenuItem オブジェクトに追加されます。関連付けられるメソッドはmenuItemSelectHandler()という名前です。このメソッドは、trace()を使用してステートメントを出力します。ステートメントが出力されるのは、コンテキストメニューにアクセスし、Red to Blackを選択した場合です。また、赤色の四角形は削除されて黒色の四角形に置換されます。- タイプが
menuSelectのイベントリスナーが、関連するmenuSelectHandlerメソッドと共に追加されます。このメソッドは、コンテキストメニューアイテムが開かれるたびにtrace()を使用して 3 つのステートメントを出力します。 - 次に、
addChildren()は、赤色の四角形を描画し、それを表示リストに追加します。この四角形は、すぐに表示リストに表示されます。 - 最後に、
myContextMenuがredRectangleスプライトのコンテキストメニューに割り当てられ、マウスポインターが四角形上に置かれたときのみカスタムコンテキストメニューが表示されるようになります。
package {
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.ui.ContextMenuBuiltInItems;
import flash.events.ContextMenuEvent;
import flash.display.Sprite;
import flash.display.Shape;
import flash.text.TextField;
public class ContextMenuExample extends Sprite {
private var myContextMenu:ContextMenu;
private var menuLabel:String = "Reverse Colors";
private var textLabel:String = "Right Click";
private var redRectangle:Sprite;
private var label:TextField;
private var size:uint = 100;
private var black:uint = 0x000000;
private var red:uint = 0xFF0000;
public function ContextMenuExample() {
myContextMenu = new ContextMenu();
removeDefaultItems();
addCustomMenuItems();
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
addChildren();
redRectangle.contextMenu = myContextMenu;
}
private function addChildren():void {
redRectangle = new Sprite();
redRectangle.graphics.beginFill(red);
redRectangle.graphics.drawRect(0, 0, size, size);
addChild(redRectangle);
redRectangle.x = size;
redRectangle.y = size;
label = createLabel();
redRectangle.addChild(label);
}
private function removeDefaultItems():void {
myContextMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
defaultItems.print = true;
}
private function addCustomMenuItems():void {
var item:ContextMenuItem = new ContextMenuItem(menuLabel);
myContextMenu.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
}
private function menuSelectHandler(event:ContextMenuEvent):void {
trace("menuSelectHandler: " + event);
}
private function menuItemSelectHandler(event:ContextMenuEvent):void {
trace("menuItemSelectHandler: " + event);
var textColor:uint = (label.textColor == black) ? red : black;
var bgColor:uint = (label.textColor == black) ? black : red;
redRectangle.graphics.clear();
redRectangle.graphics.beginFill(bgColor);
redRectangle.graphics.drawRect(0, 0, size, size);
label.textColor = textColor;
}
private function createLabel():TextField {
var txtField:TextField = new TextField();
txtField.text = textLabel;
return txtField;
}
}
}
Tue Jun 12 2018, 10:34 AM Z
継承されるパブリックプロパティを隠す
継承されるパブリックプロパティを表示