Wątek przeniesiony 2014-07-05 23:23 z Newbie przez dzek69.

three js dlaczego funkcja od JSON loader nie zmienia zmiennej

0

napisałem coś takiego

function createModel(scene)
{
	this.scene = scene;
	this.mesh= null;
	this.loader = null;
	this.geometry = null;

	this.loaded = false;

	this.create= function()
	{		
		this.loader = new THREE.JSONLoader();

		this.loader.load("core/json_model/model.js", this.loadModel);		
	}

	this.rotate = function()
	{
		alert("obracam");
		mesh.rotation.y += 0.002;
	}

	this.isLoaded = function()
	{
		if(this.loaded == false)
			return false;
		else
			return true;
	}

	this.loadModel = function(param)
	{
		this.geometry = param;
		var material = new THREE.MeshPhongMaterial( { color: 0x2a2a2a } );
		this.mesh = new THREE.Mesh( this.geometry, material);
		this.scene.addToScene(this.mesh);
		this.loaded = true;
	}

	this.loader.onLoadComplete=function(){this.loaded = true;} 
}

wewnątrz funkcji loadModel mam taka instrukcję this.loaded = true;
ale ona nie zmieni mi zmiennej loaded na true, dlaczego tak jest??
Przecież działa w obrębie klasy więc powinna być widoczna.

to coś this.loader.onLoadComplete nie działa i też nie wiem dlaczego
to zdarzenie powinno zajść po ukończeniu wczytywania

0

Definicja "klasy" wygląda raczej ok. Pokaż w jaki sposób wywołujesz metodę loadModel(param)

0

tutaj jest wywołanie

this.loader.load("core/json_model/model.js", this.loadModel);  

zaraz po ścieżce muszę podać funkcje. argument param, jest wypełniany automatycznie. zawiera już obiekt który potem muszę dodać do sceny.
jest jeszcze drugi parametr opcjonalny który dotyczy textur

1 użytkowników online, w tym zalogowanych: 0, gości: 1