- ベストアンサー
as3 衝突判定のエラーについて
- as3 衝突判定のエラーについて調査中
- 衝突判定によるフレームの移動ができるが、エラーが発生
- エラーメッセージ「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
エラー大量発生の原因は単純に フレーム "inhouse" には, 少なくとも player2 が存在しないからでしょうね。 (enter1 の方も存在しないかもしれませんが。) ※【添付図】↓ 仮にもし存在していたとしても, Event.ENTER_FRAME で ずっと this.gotoAndStop("inhouse"); をさせ続けるのはおかしいと思います。 (そのフレーム以外に行けなくなってしまいます。) player2 が存在してもしなくても 何にしても removeEventListener すべきでしょう。 //------------------------------ stop(); player2.addEventListener(Event.ENTER_FRAME,go); function go(event:Event):void { player2.x += 5; if (player2.hitTestObject(enter1)) { //↓追加↓ player2.removeEventListener(Event.ENTER_FRAME,go); this.gotoAndStop("inhouse"); trace("ok"); } } //------------------------------ 「タイムラインに置いたMovieClipからフレーム移動するとrootやstageが参照できない」 http://fumiononaka.com/TechNotes/Flash/FN1003002.html
その他の回答 (1)
- dmq
- ベストアンサー率80% (21/26)
go()の中においてplayer2かenter1か、あるいはthisがnullとなっている可能性があります。 trace()を使って確認してみてください。
お礼
ありがとうございます。 おっしゃる通り、nullになっておりました。 タイムラインにおいてフレーム追加していなかった為でした。 的確なご指示ありがとうございます。 またお願い致します。
お礼
恥ずかしながらpkayer2のフレームをinhouseの領域にて入れておりませんでした。 また、スクリプトがinhouseにも引き続き適用されているという 意識がすっかり飛んでいました。 正におっしゃられている通りです。 ありがとうございます。 次回も是非お願い致します。