よくわかりません ><
cube = rootNode.addChild(new Cube()); cube.container.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
これしても実行時にエラーがでる
cube.container を trace しても null がはいっている。
サンプルとか見てると MovieAssetMaterial で material つくってやると container に addEventListener できるっぽいんだけど、Flash9α使ってないしなー。
ほかの material もやってみたけど、どーもうまくいきません。。。。
たちけて........
追記
kozyさんのコメントで解決しました。
http://un-q.net/2007/04/displayobject3dmouseevent.html#comment-1873
Scene3D ではなく MovieScene3D を使うと 直下の DisplayObject3D.container でイベントを取れるようです。
でも、DisplayObject3Dに addChild した DisplayObject3D のイベントはどうやって取ればいいのだろうか???




コメント (2)
はじめまして。ここのブログをかなり参考にさせてもらっております。
「DisplayObject3DにMouseEvent」、私もかなりハマってましたがこの書き込みから解決できましたので、ご参考になればと。
解決策ですが、Scene3DではなくMovieScene3Dを使用すればイベントが設定できました。
DisplayObject3D.containerプロパティはMovieScene3DにaddChildする時にSpriteが(newされて)セットされています。ということでSpriteで定義されているイベントをDisplayObject3Dでそのままハンドリングできるってことらしいですね。
でもこの仕様だとsceneの直接の子要素単位でしかイベントは捕まえられないってことなんですかね。。。
以上、長文で失礼しました。それでは。
投稿者: kozy | 2007年04月19日 11:29
日時: 2007年04月19日 11:29
>kozy
ありがとーございまーす!
出来ました!
MovieScene3Dは一度試していたのですが、いつも
rootNode = scene.addChild(new DisplayObject3D("rootNode"));
として rootNode にオブジェクト追加していたので、うまくいかなかったようです。
scene に addChild したらうまくいきました 。
>でもこの仕様だとsceneの直接の子要素単位でしかイベントは捕まえられないってことなんですかね。。。
これ困りますねー。
どうすればいいんだろうなー。
投稿者: yo-suke | 2007年04月19日 14:14
日時: 2007年04月19日 14:14