【发布时间】:2017-03-24 11:31:19
【问题描述】:
我开始学习使用 Threejs 创建一个旋转的 3D 立方体。我按照this 教程进行操作,但是无法为对象的旋转设置动画。
在此之前,我收到一个旋转未定义的错误。我在 animate() 中使用以下代码解决了它:
var manager = new THREE.LoadingManager();
manager.onLoad = function() {
root.render();
requestAnimationFrame( root.animate );
}
只是现在什么都没有发生。我也没有收到任何错误。有谁知道缺少什么或我做错了什么?
App.cubeController = {
camera: null,
scene: null,
renderer: null,
mesh: null,
// Setup for render
init: function(){
// Development
console.log('init cubeController');
// Declare variables
var root = this;
root.scene = new THREE.Scene(); // Setting up the scene
root.camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000); // Set dimensions of the stage
var light = new THREE.DirectionalLight( 0xffffff );
light.position.set( 0, 1, 1 ).normalize();
root.scene.add(light);
var geometry = new THREE.CubeGeometry(10, 10, 10); // Create the object
var material = new THREE.MeshPhongMaterial( { ambient: 0x050505, color: 0x0033ff, specular: 0x555555, shininess: 30 } );
root.mesh = new THREE.Mesh(geometry, material);
root.mesh.position.z = -50
root.scene.add( root.mesh );
root.renderer = new THREE.WebGLRenderer();
root.renderer.setSize( window.innerWidth, window.innerHeight );
$('body').append( root.renderer.domElement );
window.addEventListener( 'resize', root.onWindowResize, false );
root.render();
root.animate();
},
// Update the state of each object in the scene
animate: function() {
// Development
console.log("init Animate");
var root = this;
root.mesh.rotation.x += .05;
root.mesh.rotation.y += .05;
var manager = new THREE.LoadingManager();
manager.onLoad = function() {
root.render();
requestAnimationFrame( root.animate );
}
},
// Render the result
render: function() {
// Development
console.log("init Render");
var root = this;
root.renderer.render( root.scene, root.camera );
},
// OnResize change camera aspect
onWindowResize: function() {
var root = this;
root.camera.aspect = window.innerWidth / window.innerHeight;
root.camera.updateProjectionMatrix();
root.renderer.setSize( window.innerWidth, window.innerHeight );
root.render();
}
}
【问题讨论】:
标签: javascript three.js