トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     微妙に重なるボタンのイベント取得について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
CUBE-CUBE
Åê¹ÆNo.16524
投稿日時: 2005-4-6 15:56
新米
居住地: JAPAN
投稿: 29
使用環境:
windows2000 / windowsXP HOME sp2

FlashMX2004Pro
微妙に重なるボタンのイベント取得について
たびたび失礼します。

完全ではなく微妙に重なるボタンオブジェクトがある時、最初のボタンに対しての on(rollOver) は取得できるのですが、そのまま微妙に重なっているボタンオブジェクトにマウスカーソルを移動させても on(rollOver) イベントを取得できません。

一度、ボタンからマウスを外し再度、微妙に重なっているボタンオブジェクトにカーソルを合わせればイベントを取得できるのですが、こういった場合、皆様はどのように解決なさってますでしょうか?

宜しくお願いします。


制作環境はwin2000の MX2004PROです。


----------------
CUBE-CUBE
http://cube-cube.com

野中文雄
Åê¹ÆNo.16527
投稿日時: 2005-4-6 16:06
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 微妙に重なるボタンのイベント取得について
特定の位置座標(たとえばマウスポインタ)については、「重なっている」か「重なっていない」かのどちらかになるはずです。「微妙」の意味が、わかりかねます。

マウスイベントを受取るon ()ハンドラの設定されたインスタンスが「重なっている」場合、重なり順で手前のインスタンスがイベントを排他的に受取ります。

背面のインスタンスでマウスイベントを処理したい場合には、on ()ハンドラを使わずにマウス操作を検出します。

参考:「onハンドラを使わずにロールオーバー/ロールアウトを検出する
引用:
CUBE-CUBEさんは書きました:
完全ではなく微妙に重なるボタンオブジェクトがある時、最初のボタンに対しての on(rollOver) は取得できるのですが、そのまま微妙に重なっているボタンオブジェクトにマウスカーソルを移動させても on(rollOver) イベントを取得できません。

ご使用の環境は、プロフィールに記入することが推奨されています。
引用:
制作環境はwin2000の MX2004PROです。


----------------
 

CUBE-CUBE
Åê¹ÆNo.16528
投稿日時: 2005-4-6 17:13
新米
居住地: JAPAN
投稿: 29
使用環境:
windows2000 / windowsXP HOME sp2

FlashMX2004Pro
Re: 微妙に重なるボタンのイベント取得について
野中様

ご返信ありがとうございます。
作業環境登録させて頂きました。

現象ですが、上手く説明できなくて申し訳ありません。

例えばなのですが、下記の様にROOTに

(■と□はボタンシンボル)
■□

とボタンシンボルが離れて並んでいる場合、普通にイベントが取得できるのです。

ところが、隣合うボタン同士が1pxでも重なっている場合(■の右側数ピクセルと□の左側数ピクセルのみが重なる)マウスが左から右の場合は■のon(rollOut)が右から左の場合は□のon(rollOut)しか反応しません。

実際には■から□へマウスが移動した時に■のon(rollOut)は動いている様でした。

説明が回りくどくて申し訳ございません。

今回は動的に最大30個のボタンを配置するため、全てでonClipEvent(enterFrame)を走らせるのに躊躇したのですが、実際負荷レベルはどのようなものなのでしょうか?


----------------
CUBE-CUBE
http://cube-cube.com

野中文雄
Åê¹ÆNo.16542
投稿日時: 2005-4-6 21:41
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 微妙に重なるボタンのイベント取得について
以下のご説明は、先のポストで引用した私のノートの解説と一致すると考えてよいのでしょうか。

つまり、■が背面□が前面で一部重なり合っている場合、■上から□と重なり合った部分にマウスポインタを移動すると、□が重なった領域に入ったとき(まだ■上にポインタがあるにもかかわらず)■のon (rollOut)イベントが発生します。逆に□から■と重なり合った部分にマウスポインタを移動すると、■上の領域に入っても□が前面にあるかぎり□はon (rollOut)イベントを受取りません。

もし、この内容と異なる現象でしたら、もう少し詳しくご説明ください。
引用:
CUBE-CUBEさんは書きました:
■□
...[中略]...
ところが、隣合うボタン同士が1pxでも重なっている場合(■の右側数ピクセルと□の左側数ピクセルのみが重なる)マウスが左から右の場合は■のon(rollOut)が右から左の場合は□のon(rollOut)しか反応しません。

実際には■から□へマウスが移動した時に■のon(rollOut)は動いている様でした。

負荷の度合いは、もちろんその処理内容によります。しかし、onClipEvent (enterFrame)自体は、アニメーションで標準的に使用されるイベントハンドラです。たとえば、スクリプトで敵艦やそのの砲弾をランダムに飛ばす場合や、スクリプトで雪を降らせるといったアニメーションでは、数十から数百のインスタンスを動かすことはありえると考えます。

30個という数自体がそれほど多いとは思えません。もっとも、実際にはその動作を、具体的にターゲット環境で確認する必要はあります。
引用:
今回は動的に最大30個のボタンを配置するため、全てでonClipEvent(enterFrame)を走らせるのに躊躇したのですが、実際負荷レベルはどのようなものなのでしょうか?


----------------
 

CUBE-CUBE
Åê¹ÆNo.16551
投稿日時: 2005-4-7 11:15
新米
居住地: JAPAN
投稿: 29
使用環境:
windows2000 / windowsXP HOME sp2

FlashMX2004Pro
Re: 微妙に重なるボタンのイベント取得について
野中様。

ご返信ありがとうございます。
大変申し訳ないのですが、先日ポストした私のないように致命的な間違いがありました。

(■と□はボタンシンボル)
■□

とボタンシンボルが離れて並んでいる場合、普通にイベントが取得できるのです。

ところが、隣合うボタン同士が1pxでも重なっている場合(■の右側数ピクセルと□の左側数ピクセルのみが重なる)マウスが左から右の場合は■のon(rollOver)が右から左の場合は□のon(rollOver)しか反応しません。

実際には■から□へマウスが移動した時に■のon(rollOut)は動いている様でした。

イベントの内容なのですが、rollOverをrollOutと書いてしまっていました・・・今回のコアになる部分を間違いえてしまい、申し訳御座いませんでした


----------------
CUBE-CUBE
http://cube-cube.com

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops