![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Airmax | Åê¹ÆNo.2068 投稿日時: 2003-12-11 10:36 |
新米 ![]() ![]() 居住地: 投稿: 4
使用環境:
|
ネストされたMC内でコンテキストメニューが動作しない よろしくお願いします。
コンテキストメニューを使用したアプリケーションを制作しているのですが、 行き詰まってしまったので、御知恵をお貸しください。 症状: ネストされたムービークリップ内に設定しコンテキストメニューが有効にならずに、 デフォルトのコンテキストメニューが表示されてしまう。 症状の特定方法: 以下の操作をした場合に、上記の症状が発生しました。 1) ステージ上にMenuMCというインスタンス名のムービークリップを作成し、任意の短形を描く。 2) MenuMCのタイムラインに以下のスクリプトを記述する。 // コンテキストメニュー myMenu = new ContextMenu(); myMenu.hideBuiltInItems(); myMenu.customItems.push(new ContextMenuItem("MenuMC",myMenuHandler)); this.menu = myMenu; trace(this.menu.customItems[0].caption); myMenu.onSelect = function(obj,menu) { trace(obj + "+" + menu); } 3) この状態でプレビューすると、短形では正しくコンテキストメニューが表示され、 customItems[0].captionも正しく出力される。 4) MenuMCをさらにムービークリップ化し、NestMCというインスタンス名を設定する。 5) プレビューすると、出力は正しく行われるが、コンテキストメニューが表示されない。 6) NestMCのタイムラインに以下のスクリプトを記述する。 // コンテキストメニュー myMenu = new ContextMenu(); myMenu.hideBuiltInItems(); myMenu.customItems.push(new ContextMenuItem("NestMC",myMenuHandler)); this.menu = myMenu; trace(this.menu.customItems[0].caption); myMenu.onSelect = function(obj,menu) { trace(obj + "+" + menu); } 7) この状態でプレビューするとtrace()は正しく行われ、両方のcaption名が出力されるが、 コンテキストメニューはNestMCの物しか表示されない。 構造: ステージ ↓ NextMC ↓ MenuMC ↓ 任意の短形 現状: 原因が「ネストされたこと」以外にはまったく思いつきません。 ネストされたムービークリップ内ではonSelectは受け取れないのでしょうか? よろしくお願い致します。 環境 Windows 2000 Pro Flash MX 2004 Pro プレビュープレイヤーバージョン 7.0.14.0 |
Airmax | Åê¹ÆNo.2105 投稿日時: 2003-12-12 15:11 |
新米 ![]() ![]() 居住地: 投稿: 4
使用環境:
|
Re: ネストされたMC内でコンテキストメニューが動作しない 以下のスクリプトで検証しましたが、結果は以下のようになりました。
1) メニューは正しく設定されている 2) イベントハンドラも正しく設定されている 3) ネストされると親オブジェクトのonSelectのみ発生する
根本的に記述方法がおかしいのか、バグのような気がするのですが、どうでしょうか・・・。 バグのようならば、マクロメディアに報告してみようかと思います・・・。 |
野中文雄 | Åê¹ÆNo.2160 投稿日時: 2003-12-15 4:47 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
![]() ![]() ![]() |
Re: ネストされたMC内でコンテキストメニューが動作しない 親MovieClipのコンテクストメニューだけが表示されるというより、メインのタイムラインに配置していない(ネストされた)MovieClipにコンテクストメニューが設定できないようです。Flash MX 2004 7.0.1/MacOS X.2.8 & Windows XP (SP1)で再現しました。
引用: Airmaxさんは書きました: 記述に誤りはないと思います。仕様といわれる恐れもあるものの、一応報告された方がよいでしょう。私も別途確認してみます。 引用: 根本的に記述方法がおかしいのか、バグのような気がするのですが、どうでしょうか・・・。 |
森 巧尚 | Åê¹ÆNo.2161 投稿日時: 2003-12-15 10:37 |
モデレータ ![]() ![]() 居住地: 宝塚 投稿: 650
使用環境:
![]() ![]() ![]() ![]() |
Re: ネストされたMC内でコンテキストメニューが動作しない 引用:
記述に誤りはないと思います。仕様といわれる恐れもあるものの、一応報告された方がよいでしょう。私も別途確認してみます。 どうもバグっぽいですね。 僕は最初「ムービークリップを入れ子にしたときのonReleaseの動き」に似ていたので、「子供のMCよりも親のMCの方が先に反応してるだけ」かなあと思っていたのですが、親のMCにコンテキストメニューを割り当てていなくても入れ子の子供MCはコンテキストメニューが動かないですね。
|
Airmax | Åê¹ÆNo.2170 投稿日時: 2003-12-15 14:42 |
新米 ![]() ![]() 居住地: 投稿: 4
使用環境:
|
Re: ネストされたMC内でコンテキストメニューが動作しない 野中様、森様、ご確認ありがとうございます。
こちらでも引き続き検証を行っていたのですが、 ネストした場合には内部にボタンが存在すれば、 そのヒットエリア内でonSelectが検知できるみたいです。 まだ正確には分かりませんが、以下のような感じになるのでしょうか。 ・非ネスト時のMCではそのシェイプが検知領域になる。 ・ネスト時には内部のボタンインスタンスのヒットエリアが検知領域 どうやら検知領域がポイントになりそうですね。 引き続き検証してみます。 それにしても、マクロメディアのバグ報告用の記入フォームサイズは、 「操作ステップを書きなさい」と言っている割には小さいですね・・・・。 |
野中文雄 | Åê¹ÆNo.2171 投稿日時: 2003-12-15 15:10 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
![]() ![]() ![]() |
Re: ネストされたMC内でコンテキストメニューが動作しない 10へぇ?
![]() 引用: Airmaxさんは書きました: 結果としては、そうなりますね。ただ、MovieClip.menuプロパティに設定したContextMenuのヒット領域が、内包するButtonインスタンスで決まるというのは仕様として問題です。 MovieClipに(ボタン用の)onアクションを設定しても、MovieClip.hitAreaプロパティの指定をしても、コンテクストメニューは表示されませんでした。バグの可能性が高まったと考えます。 引用: まだ正確には分かりませんが、以下のような感じになるのでしょうか。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |