-2

なぜ私がsuccessCallback is not a functionjsに入るのか誰か教えてもらえますか?

これを呼び出すコードは次のとおりです。

function fillData(data){
        this.raw = data;
    }

function AnimatedModel(posx, posy, posz,sx,sy,sz,r,g,b,a, name, yd){
        this.x = posx;
        this.y = posy;
        this.z = posz;
        this.scale = new Array(sx,sy,sz);
        parseBinFile(this, name)
        this.r = r;
        this.g = g;
        this.b = b;
        this.a = a;
        this.yawDeg = yd;
        this.fillData = fillData;
    }

    var zombie = new AnimatedModel(0,0, 0, 0.2,0.2,0.2, 0.0,1.0,0.6,0.2, "zom3.ms3d", 0);

function parseBinFile(model, name){
        getServerFileToArrayBufffer(name, model.fillData)
        console.log(model.raw);

    }


    function getServerFileToArrayBufffer(url, successCallback){
            // Create an XHR object
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
            if (xhr.readyState == xhr.DONE) {
                if (xhr.status == 200 && xhr.response) {
                        // The 'response' property returns an ArrayBuffer
                        successCallback(xhr.response);
                    } else {
                        alert("Failed to download:" + xhr.status + " " + xhr.statusText);
                    }
                }
            }

            // Open the request for the provided url
            xhr.open("GET", url, true);
            // Set the responseType to 'arraybuffer' for ArrayBuffer response
            xhr.responseType = "arraybuffer";
            xhr.send();
        }

編集:fillData関数を忘れました。

4

1 に答える 1

2

プロパティを設定する前parseBinFile()AnimatedModelコンストラクターを呼び出しているため、それが問題の原因となっている呼び出しである場合は、呼び出す前にオブジェクトを完全に初期化する必要があります。fillDataAnimatedModelAnimatedModelparseBinFile(this, name)

于 2012-06-28T23:02:35.530 に答える