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 を渡す所が気持ち悪いです。クロージャが無かったら渡せなかった。