右クリックメニューはOpenLaszloではコンテキストメニューと呼ばれます。
| LzContextMenu | コンテキストメニュー本体。メニューアイテムの入れ物。メニューオープン時にonmemuopenイベントを送信する。 |
|---|---|
| LzContextMenuItem | コンテキストメニュー内のメニューアイテム。 |
| メソッド | オブジェクト | 内容 |
|---|---|---|
| setDefaultContextMenu() | <canvas> | canvas上に設定される右クリックメニュー。すべてのビューに対するデフォルトメニューになる。 |
| addItem() | LzContextMenu | メニューアイテムをメニューに追加。 |
| clearItems() | LzContextMenu | すべてのカスタムアイテムをメニューから削除。 |
| getItems() | LzContextMenu | カスタムアイテムの一覧リストを取得。 |
| hideBuiltInItems() | LzContextMenu | Flashのデフォルトメニューアイテムを削除する。 |
| makeMenuItem() | LzContextMenu | メニューアイテムを新規作成する。 |
| setDelegate() | LzContextMenu | メニューオープン時にコールされるデリゲートを指定。 |
| showBuiltInItems() | LzContextMenu | Flashのデフォルトメニューアイテムを表示する。 |
| getCaption() | LzContextMenuItem | 表示されているメニューアイテム名を取得。 |
| setCaption() | LzContextMenuItem | 表示するメニューアイテム名を設定。 |
| setDelegate() | LzContextMenuItem | メニューアイテム選択時にコールされるデリゲートを指定。 |
| setEnabled() | LzContextMenuItem | メニューアイテムの有効・無効。無効時はグレーアウトになってクリックに反応しない。 |
| setSeparatorBefore() | LzContextMenuItem | 区切り線を表示。 |
| setVisible() | LzContextMenuItem | メニューアイテムの可視・不可視を設定。 |
| setContextMenu() | <view> | メニューアイテムをビューに実装(ひもづけ)する。 |
下記の四角の上で右クリックしてください。「右クリックテスト」というメニューが出ます。
<?xml version="1.0" encoding="UTF-8"?> <canvas proxied="false" bgcolor="0xeeeeee"> <handler name="oninit"> // メニュー生成 var cm = new LzContextMenu(); // メニューアイテム生成 var item = cm.makeMenuItem("右クリックテスト",new LzDelegate(this,"dispText")); cm.addItem(item); // 生成内容をビューに反映 this.setContextMenu(cm); </handler> <method name="dispText"> txt.addText("右クリックテスト実行" + "\n"); </method> <text id="txt" multiline="true"/> </canvas>
メニューを選択したときに、それぞれの引数データをメソッドに渡します。
<?xml version="1.0" encoding="UTF-8"?> <canvas proxied="false" bgcolor="0xeeeeee"> <handler name="oninit"> var cm = new LzContextMenu(); var del = new LzDelegate(this, "dispText"); var item1 = cm.makeMenuItem("メニュー:1", del); item1.value = "1"; cm.addItem(item1); var item2 = cm.makeMenuItem("メニュー:2", del); item2.value = "2"; cm.addItem(item2); var item3 = cm.makeMenuItem("メニュー:3", del); item3.value = "3"; cm.addItem(item3); this.setContextMenu(cm); </handler> <method name="dispText" args="d"> txt.addText(d.value + "が選択されました" + "\n"); </method> <text id="txt" multiline="true"/> </canvas>