2010年12月24日

TypeError: Error #1009 2回削除されて・・

■エラーメッセージ
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。


■原因
1.自機ショットを配列に格納
2.敵MC側で自機ショットとの当り判定をforで取る。
3.接触していれば該当するショットを削除。
4.自分(敵)を削除する関数を実行して自分も消える。

上記の処理で4番が2回処理される事があった。
弾の間隔が短い時(同時に敵に接触するような)時に良く発生。
3回処理される事は無い模様。


どうも自分(敵)を削除する関数を呼び出している間に、もう一回分ループ処理を行っている模様である。
よって、次の弾との当り判定も行われ、削除の関数がもう一度呼び出される。
1回目の削除関数でaddChild()されているので、2回目の削除の際に親MCがnullである。
エラー。



■対応
当り判定のループで、余分にループしないように
自分削除関数を呼び出した直後にbreakで抜けておくとエラーは発生しなくなった。





むずい・・・


この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。