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で抜けておくとエラーは発生しなくなった。





むずい・・・


広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。