Trying to wrap a cube into texture. When I try to use EventListener Uncaught TypeError: undefined is not a function - it complains, but just loader.onload=func... - nothing happens.

 window.onload = init; var scene, camera, render; var cube, cube_geometry, cube_material; var cube_texture, loader; function init(){ container = document.createElement('div'); document.body.appendChild(container); scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera(70,window.innerWidth/window.innerHeight,0.1,1000); camera.position.z = 700; cube_geometry = new THREE.CubeGeometry(100,100,100,100); cube_texture = new THREE.Texture(); loader = new THREE.ImageLoader(); /*loader.addEventListener('load',function (event){ cube_texture.image = event.content; cube_texture.needsUpdate = true; },false);*/ loader.load('texture.jpg'); loader.onload = function(event){ cube_texture.image = event.content; cube_texture.needsUpdate = true; } cube_material = new THREE.MeshBasicMaterial({map:cube_texture,overdraw:true}); cube = new THREE.Mesh(cube_geometry,cube_material); scene.add(cube); render = new THREE.WebGLRenderer(); render.setSize(window.innerWidth,window.innerHeight); container.appendChild(render.domElement); //animation(); render.render(scene,camera); } function animation(){ webkitRequestAnimationFrame(animation); render.render(scene,camera); } 

I do on the video .

  • @Nirfik, If you are given an exhaustive answer, mark it as correct (click on the check mark next to the selected answer). - Vitalina

2 answers 2

ImageLoader documentation

 .load ( url, onLoad, onProgress, onError ) 

You should have this:

 loader.load('texture.jpg', function(event){ cube_texture.image = event.content; cube_texture.needsUpdate = true; }); 
     var loader = new THREE.ImageLoader(); loader.load('texture.jpg', function ( image ) { cube_texture.image = image; cube_texture.needsUpdate = true; }, function ( xhr ) { console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); }, function ( xhr ) { console.log( 'An error happened' ); });