| パッケージ | flash.ui |
| クラス | public final class ContextMenu |
| 継承 | ContextMenu EventDispatcher Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ContextMenu オブジェクトは、特定のボタンやムービークリップ、テキストフィールドオブジェクト、またはムービー全体に関連付けることができます。この場合は、Button クラス、MovieClip クラス、TextField クラスの menu プロパティを使用します。menu プロパティの詳細については、Button.menu、MovieClip.menu、および TextField.menu を参照してください。
ContextMenu オブジェクトに新しいアイテムを追加するには、ContextMenuItem オブジェクトを作成し、そのオブジェクトを ContextMenu.customItems 配列に追加します。コンテキストメニューアイテムの作成の詳細については、ContextMenuItem クラスを参照してください。
Flash Player には 3 種類のコンテキストメニューがあります。これらは、Flash Player を右クリックしたときに表示される標準メニュー、選択可能テキストフィールドまたは編集可能テキストフィールドを右クリックしたときに表示される編集メニュー、Flash Player への SWF ファイルのロードが失敗したときに表示されるエラーメニューです。ContextMenu クラスで変更できるのは、標準メニューと編集メニューだけです。
カスタムメニューアイテムは、常に Flash Player コンテキストメニューの一番上に、つまり、表示されるどのビルトインメニューアイテムよりも上に表示されます。ビルトインメニューアイテムとカスタムメニューアイテムの間にはセパレータが表示されます。コンテキストメニューに追加できるカスタムアイテムは 15 アイテム以内です。コンテキストメニューから [設定] メニューアイテムを削除することはできません。[設定] メニューアイテムは、ユーザーがプライバシーやコンピュータの記憶領域に関連する設定を変更できるように用意されているもので、Flash に必須のメニューアイテムです。また、[Adobe Flash Player 9 について] メニューアイテムも削除できません。このメニューアイテムは、使用している Flash Player のバージョンをユーザーが確認するために必要です。
ContextMenu オブジェクトのメソッドを呼び出す前に、ContextMenu() コンストラクタを使用して ContextMenu オブジェクトを作成する必要があります。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| builtInItems : ContextMenuBuiltInItems
ContextMenuBuiltInItems クラスの次のブール型プロパティを持つオブジェクトです。forwardAndBack、loop、play、print、quality、rewind、save、zoom。
| ContextMenu | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| customItems : Array
ContextMenuItem オブジェクトの配列です。
| ContextMenu | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| メソッド | 定義元 | ||
|---|---|---|---|
|
ContextMenu オブジェクトを作成します。
| ContextMenu | ||
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
| EventDispatcher | |
|
指定された ContextMenu オブジェクトのコピーを作成します。
| ContextMenu | ||
![]() |
イベントをイベントフローに送出します。
| EventDispatcher | |
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
|
[設定] を除き、指定された ContextMenu オブジェクト内のすべてのビルトインメニューアイテムを非表示にします。
| ContextMenu | ||
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
![]() | Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| ユーザーが最初にコンテキストメニューを生成したときに、コンテキストメニューの内容が表示される前に送出されます。 | ContextMenu | |||
| builtInItems | プロパティ |
builtInItems:ContextMenuBuiltInItems [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ContextMenuBuiltInItems クラスの次のブール型プロパティを持つオブジェクトです。このオブジェクトのプロパティには、forwardAndBack、loop、play、print、quality、rewind、save、zoom があります。これらのプロパティを false に設定すると、対応するメニューアイテムが、指定した ContextMenu オブジェクトから削除されます。これらのプロパティは列挙することができ、デフォルトでは true に設定されています。
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
関連項目
| customItems | プロパティ |
customItems:Array [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ContextMenuItem オブジェクトの配列です。配列内の各オブジェクトは、定義したカスタムコンテキストメニューアイテムを表します。このプロパティを使用して、これらのカスタムメニューアイテムを追加、削除、変更することができます。
新しいメニューアイテムを追加するには、ContextMenuItem オブジェクトを作成し、このオブジェクトを customItems 配列に追加します。このとき、Array.push() などを使用します。メニューアイテムの作成の詳細については、ContextMenuItem クラスを参照してください。
public function get customItems():Array
public function set customItems(value:Array):void
関連項目
| ContextMenu | () | コンストラクタ |
public function ContextMenu()
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ContextMenu オブジェクトを作成します。
関連項目
| clone | () | メソッド |
public function clone():ContextMenu
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
指定された ContextMenu オブジェクトのコピーを作成します。コピーとして作成されたオブジェクトは、元のメニューオブジェクトのすべてのプロパティを継承します。
戻り値ContextMenu — 元のメニューオブジェクトのすべてのプロパティを持つ ContextMenu オブジェクトです。
|
| hideBuiltInItems | () | メソッド |
public function hideBuiltInItems():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
[設定] を除き、指定された ContextMenu オブジェクト内のすべてのビルトインメニューアイテムを非表示にします。デバッグ版の Flash Player が実行されている場合、デバッグのメニューアイテムは表示されますが、リモートデバッグが有効化されていない SWF ファイルについてはグレー表示されます。
このメソッドは、標準コンテキストメニューに表示されるメニューアイテムだけを非表示にします。編集メニューおよびエラーメニューに表示されるメニューアイテムには影響しません。
このメソッドは、 my_cm .builtInItems に含まれるブール型プロパティをすべて false に設定するという形で機能します。 my_cm .builtInItems 内の対応するアイテムを true に設定すれば、個々のビルトインアイテムを選択的に表示させることができます。
関連項目
| menuSelect | イベント |
flash.events.ContextMenuEvent
flash.events.ContextMenuEvent
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ユーザーが最初にコンテキストメニューを生成したときに、コンテキストメニューの内容が表示される前に送出されます。これにより、コンテキストメニューを表示する前に、プログラムによってコンテキストメニューアイテムのセットを変更できます。ユーザーがポインティングデバイスを右クリックすると、コンテキストメニューが生成されます。
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.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;
}
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/ui/ContextMenu.html