Can someone tell me why I’m getting successCallback is not a function in my js?
This is the code for calling it:
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();
}
Edit: forgot the fillData function.
You are calling
parseBinFile()in theAnimatedModelconstructor before you set thefillDataproperty inAnimatedModelso if that’s the call that is causing you the problem, then you need to fully initialize theAnimatedModelobject BEFORE you callparseBinFile(this, name).