2011.04.01 | 

やぁ、どうもどうも、目をかきすぎて、
パンダみたいになってるkaminalyです。

今日のはまりポイントは、
Papervision3Dのマウスイベントです。
(※バージョン 2.0 Great Whiteでのお話)

Papervision3Dでマウスイベントを設定する方法はいくつかあります。

標準だと、Viewport3DとMaterialのinteractiveプロパティをtrueにすると、
InteractiveScene3DEventを設定できるようになっていますが、

何かにフィルタをかける時とかは、深度がおかしくなったりするから、
フィルタをかけるオブジェクト以外もViewportLayer化してしまって、
ViewportLayerの方にMouseEventを設定することが多かったりします。

で、ViewportLayerのMouseEventを使っている時に、
いくつもあるオブジェクトのうち、一部分だけでイベントが正常に動かない現象がおこりました。

具体的にいうと、深度の深いオブジェクトは正常に動き、
深度が一番浅いオブジェクトに異常が起こりました。
(オブジェクト群が動いて、一番手前にいるオブジェクトがおかしくなったので多分そう!)

色々試行錯誤したのち、
Viewport3Dのinteractiveをfalseにしたら、
正常に動くようになりました。

つまり、Papervision3Dのイベントとぶつかっていたようなのです。

ViewportLayerはSpriteサブクラスで、
ViewportLayerのMouseEventはPapervision3Dとは無関係っぽいので、
Viewport3Dのinteractiveをfalseにしてもマウスイベントは動作します。

ということで、解決解決、めでたしめでたし、目痒し目痒し(涙