Flapp Loader function
今日は Loader を作成
FlappLoader.prototype = { fromURL: function(url, dict, movieClip) { var xhr = new XMLHttpRequest(); var ibit = new FlappIBit(); var loader = this; xhr.onreadystatechange = function() { if (xhr.readyState > 1) { if (xhr.status == 200) { if (xhr.responseText) { ibit.input(xhr.responseText); loader.parse(ibit, dict, movieClip); } } } } xhr.open('GET', url); // xhr.responseType = 'arraybuffer'; xhr.overrideMimeType('text/plain; charset=x-user-defined'); xhr.send(null); }, parse: function(ibit, dict, movieClip) {
こんな感じ。xhr.onreadystatechange で呼んだ function の this は XHR のオブジェクトなので、loader を渡す所が気持ち悪いです。クロージャが無かったら渡せなかった。