HTMLLoader オブジェクトを使用して表示される HTML コンテンツでは、
contextmenu
イベントを使用してコンテキストメニューを表示できます。デフォルトでは、ユーザーが選択したテキストで(テキストを右クリックするか Command キーを押しながらクリックして)コンテキストメニューを呼び出すと、自動的にコンテキストメニューが表示されます。デフォルトのメニューが開かないようにするには、
contextmenu
イベントをリッスンし、そのイベントオブジェクトの
preventDefault()
メソッドを呼び出します。
function showContextMenu(event){
event.preventDefault();
}
その後、DHTML の手法を使用するか AIR のネイティブコンテキストメニューを表示して、カスタムコンテキストメニューを表示できます。次の例では、HTML の
contextmenu
イベントに応答してメニューの
display()
メソッドを呼び出すことにより、ネイティブコンテキストメニューを表示します。
<html>
<head>
<script src="AIRAliases.js" language="JavaScript" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function showContextMenu(event){
event.preventDefault();
contextMenu.display(window.nativeWindow.stage, event.clientX, event.clientY);
}
function createContextMenu(){
var menu = new air.NativeMenu();
var command = menu.addItem(new air.NativeMenuItem("Custom command"));
command.addEventListener(air.Event.SELECT, onCommand);
return menu;
}
function onCommand(){
air.trace("Context command invoked.");
}
var contextMenu = createContextMenu();
</script>
</head>
<body>
<p oncontextmenu="showContextMenu(event)" style="-khtml-user-select:auto;">Custom context menu.</p>
</body>
</html>
|
|
|