removeEventListenerの必要性
参考にしているJavaScriptのソースで下記のような部分があったのですが、
(画面に描画をするプログラムの一部です。動きとしてはマウスの動きに合わせて模様が描かれて残像が残って消えていきます。)
j(b)関数の中の一行目でdocument.removeEventListener("mousemove", j, !1);
としてmousemoveのイベントリスナーを削除しているのが何故なのか解らず困っています。
メモリリークが発生するとかそういう問題なのでしょうか?
-----------------------------------------------------------------------
<script type="text/javascript">
(function() {
function j(b) {
document.removeEventListener("mousemove", j, !1);
document.removeEventListener("touchstart", j, !1);
y(b);
var g = l - p * 0.5, f = m - q * 0.5, a = Math.sqrt(g * g + f * f), b = l + g / a * 150, a = m + f / a * 150, g = Math.atan2(f, g);
g += Math.PI * (0.5 + Math.random() * 0.5) * (Math.random() > 0.5 ? 1 : -1);
for (f = 0; f < z; f++) {
for (var e = A[f].f, c = 0; c < r; c++) {
var d = e[c], h = Math.PI * 0.15 / r * c + g, k = Math.cos(h) * (r - c) * 2, h = Math.sin(h) * (r - c) * 2;
d.x = b;
d.y = a;
d.d = k;
d.e = h
}
j = !1
}
document.addEventListener("mousemove", y, !1);
document.addEventListener("touchmove", y, !1);
document.addEventListener("touchstart", K, !1);
setInterval(L, 1E3 / 30)
}
-------------------------------------------------------------------------
同じソースの中で
window.onload = function(){
・・・
document.addEventListener("mousemove", j, !1);
というようにイベントリスナーに登録しているところは見つかったので、これを削除しているのかとは思うのですが、
何分未熟なもので、それがどういう意図によるものなのか理解できません。
どなたか、知恵を貸して頂けないでしょうか?
補足
回答ありがとうございました。1/2の確率でとはどういうことですかー?奇数ラインと偶数ラインが半減したものをepixelsとuepixelsに代入するのではなくepixelsとuepixelsそれぞれにランダムなラインに半減ラインを持つものを代入するということですか?epixelsには例えば1,2,4,6,10,13,14,21ラインが半減というような?