littlepad blog

Progression4 におけるコンテキストメニューの非表示

このエントリーの最後には重要な追記があります。最後までお読みください。

Progression4 でコンテキストメニューを非表示にしたい場合、Progression3 の時とは方法が異なる。
Progression4 ではコンフィグクラスをカスタムすることで非表示にすることが可能。
具体的には以下の冒頭の import で WebContextMenuBuilder を読み込んでいる部分を ContextMenuBuilder にしてやる。

jp.progression.config.WebConfig.as の修正箇所

//24行目のインポート部分を修正
jp.progression.ui.WebContextMenuBuilder;
↓
jp.progression.ui.ContextMenuBuilder:

//それに伴いコンストラクタ内(90行目)の以下も修正
super( WebInitializer, WebSynchronizer, CommandExecutor, WebKeyboardMapper,
           WebContextMenuBuilder, ToolTip, WebDataHolder );
↓
super( WebInitializer, WebSynchronizer, CommandExecutor, WebKeyboardMapper,
           ContextMenuBuilder, ToolTip, WebDataHolder );

カスタマイズするとこんな感じになる。

尚、ライセンスに基づき、標準でコンテクストメニューに実装されている Progression のリンクは外せません。
http://progression.jp/ja/overview/license/

参考)
http://forum.progression.jp/index.php?topic=170.0

ここから追記(2009/10/20)←重要!!

progression4 で新規プロジェクトを作成する際、プロジェクトの環境設定を以下の4つから選択する。
これらを選択することで、必要なコンフィグが index.as に自動的に割り当てられる。

汎用アプリケーションの BasicAppConfig は、シーン機能やコマンドなど基本的な機能を備えたもの。
Webコンテンツで使用する WebConfig は BasicAppConfig に対して SWFAddress + SWFWheel +
コンテクストメニュー + キーボードショートカット + etc のような Web サイト時に必要となる機能を追加した設定。

つまり、単純にコンテキストメニューを非表示にしたければ、
WebConfig ではなく BasicAppConfig を使用すればいい
ということ!

確かに通常のウェブコンテンツであれば、コンテキストメニューはあった方がユーザビリティ的にも大きいし、
progressionの醍醐味でもある部分。
非表示にするというケース自体が稀かもしれない。

今回、自分の場合はシーン機能とコマンドを使用したブログパーツを制作していました。
ブログパーツなので右クリックによる画面遷移などは必要ないため、コンテキストメニューの非表示に悩み、
試行錯誤していた訳ですが、WebConfig と BasicAppConfig の違いをキチンと理解していれば、
最初からスムーズにいったんですねー。
コンフィグをカスタマイズするよりこっちの方が全然スマートだし理に適ってる。

モバイルバージョンを終了