2016-06-12 3 views
1

Ich bin sehr neu zu BabylonJS und ich erstellt eine individuelle wie das Mesh (ich weiß nicht, ob es der richtige Weg ist):Javascript-Methode nicht in BabylonJS mit einem benutzerdefinierten Arbeitsnetz

function DragSphere() { 
    this.sphere = BABYLON.Mesh.CreateSphere("sphere", 15, 2, scene); 
    this.sphere.material = new BABYLON.StandardMaterial("sphereMat", scene); 
    ... 
    return (this.sphere); 
} 

DragSphere.prototype.setRGBColor = function(r, g, b) { 
    this.sphere.material.diffuseColor = new BABYLON.Color3(r/255, g/255, b/255); 
} 

Also ich wollen die SetRGBColor Methode meiner DragSphere verwenden, um seine Farbe zu aktualisieren, aber der Browser tut scheint nicht mit mir einig:

Uncaught TypeError: sphere.setRGBColor is not a function 

Antwort

1

entfernen Sie die return (this.sphere); Anweisung aus dem Konstruktor.

Wenn Sie TypeScript verwenden, kann nur eine Void-Funktion mit dem Operator new aufgerufen werden. Wenn Sie die Funktion wie oben mit einem Rückgabetyp in ihrer Signatur aufrufen, wird die Funktion setRGBColor im übersetzten JavaScript nicht definiert.

Sie können dies in der Babylon JS playground ausprobieren.

+0

Hallo, thx für die Antwort, aber ich bin nicht mit TypScript ^^ –

+0

Ok - das gleiche gilt für JavaScript (obwohl ich glaube nicht, erhalten Sie immer die Fehlermeldung für die Rückgabe im Konstruktor). Haben Sie versucht, die Return-Anweisung zu entfernen? @boehm_s – Mark

+0

Ich werde das WE versuchen, weil mein Projekt auf einem anderen Computer ist, danke;) –

Verwandte Themen