September 6, 2010

Papervision3Dでのマウスイベントの付け方まとめ

FlashPlayer10が出てしばらく経ちますが、FP10実装でGOが出た案件はまだまだ少ない。

というわけで、まだまだPapervision3Dをバリバリ使ってます!今更ながら、3D空間上のオブジェクトにマウスイベントの付け方をまとめてみました。

以下3つの方法があります。

1. Plane などのプリミティブに InteractiveScene3DEventクラス を利用してマウスイベントを設定する方法

Papervision3Dでマウスイベントを設定する(1) - wonderfl build flash online

2. MovieMaterial のテクスチャに利用する Sprite などに MouseEventクラス を利用してマウスイベントを設定する方法

Papervision3Dでマウスイベントを設定する(2) - wonderfl build flash online

3. プリミティブ の ViewportLayer に MouseEventクラス を利用してマウスイベントを設定する方法

Papervision3Dでマウスイベントを設定する(3) - wonderfl build flash online

と、3つ挙げたものの、「どの方法がいいんじゃい!」と。。。

以下は個人的なやり方ですが、メモがてら書いておきます。

まずPV3Dの利用スタイルですが、PV3Dを使う時はデフォルトのソート(Zソート)を使わずにインデックスソートを利用する事が格段に多いです。
理由は、Zソート時に起きるオブジェクト同士が重なった時のオブジェクト欠けが気に入らないから。
※ViewportLayerについては「Papervision3Dのソート法をZソートからインデックスソートに変更する」、「Papervision3Dのソート法をZソートからインデックスソートに変更する 番外編(ViewportLayerの事)」を参考にしてもらえればと思います。

その流れから最近はViewportLayerを使った「3. プリミティブ の ViewportLayer に MouseEventクラス を利用してマウスイベントを設定する方法」を採用する事が多いです。

3. プリミティブ の ViewportLayer に MouseEventクラス を利用してマウスイベントを設定する方法」を利用するのにはちょっとした利点があります。

1、2の方法を採用する場合、Viewport3DのbuttonModeプロパティをオンマウス、マウスアウト時に切り替える処理を入れたり、制作していく中でマウスイベントの伝播がおかしくなったりすることがありました。
ところが、3の方法を採用する事によって、PV3D独特のイベントハンドリングに頭を悩ませる事無く、従来通りのイベントハンドリングを行う事が可能になります。
それにPV3DのオブジェクトにアルファやブラーなどのフィルターもViewportLayerに直接適用できるので便利です!

という理由から僕は「3. プリミティブ の ViewportLayer に MouseEventクラス を利用してマウスイベントを設定する方法」をオススメします。
コードなどは上記サンプルのwonderflの方にありますので、参考にしてみてください。

「マウスイベントの付け方は他にもあるぜぃ!」って場合はフォーク、コメント欄などで教えていただけるとうれしいです

  • 上記の方法は個人的な主観です。
  • マウスイベントの設定方法はその時々にあった物を使いましょう。

NAME
MAIL(not released)
WEBSITE

MESSAGE

※コメントは管理人が承認したものから公開されます。

archive

profile

お仕事のご依頼・ご相談はこちらから


loftimgのWebサイトはエックスサーバー にて運用しています。