• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:as3 衝突判定のエラーについて)

as3 衝突判定のエラーについて

このQ&Aのポイント
  • as3 衝突判定のエラーについて調査中
  • 衝突判定によるフレームの移動ができるが、エラーが発生
  • エラーメッセージ「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.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    

naonao321
質問者

お礼

恥ずかしながらpkayer2のフレームをinhouseの領域にて入れておりませんでした。 また、スクリプトがinhouseにも引き続き適用されているという 意識がすっかり飛んでいました。 正におっしゃられている通りです。 ありがとうございます。 次回も是非お願い致します。

その他の回答 (1)

  • dmq
  • ベストアンサー率80% (21/26)
回答No.1

go()の中においてplayer2かenter1か、あるいはthisがnullとなっている可能性があります。 trace()を使って確認してみてください。

naonao321
質問者

お礼

ありがとうございます。 おっしゃる通り、nullになっておりました。 タイムラインにおいてフレーム追加していなかった為でした。 的確なご指示ありがとうございます。 またお願い致します。

関連するQ&A