【问题标题】:three.js animations in ember jsember js 中的three.js 动画
【发布时间】:2016-09-12 20:47:25
【问题描述】:

我应该如何为 ember js 中的动画创建三个.js 的渲染循环。我到目前为止的代码是

import Ember from 'ember';

export default Ember.Controller.extend({
  scene: new THREE.Scene(),
  camera: new THREE.PerspectiveCamera(75,
    window.innerWidth/window.innerHeight,1,500),
  renderer: new THREE.WebGLRenderer(),
  init: function() {
    this.renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(this.renderer.domElement);
    this.renderPreloader();
  },
  renderPreloader:function() {
    var geometry = new THREE.BoxGeometry( 1, 1, 1 );
    var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
    var cube = new THREE.Mesh(geometry,material);
    this.scene.add(cube);
    this.camera.position.set(2,2,2);
    this.camera.lookAt(cube.position);
    this.renderer.render(this.scene,this.camera);
    this.renderLoop();
  },
  renderLoop: function() {
    requestAnimationFrame(this.renderLoop);
    this.camera.position.x = this.camera.position.x+0.01;
    this.renderer.render(this.scene,this.camera);
  }
});

我得到的错误是this 未在requestAnimationFrame 中定义。解决这个问题的正确方法是什么?

【问题讨论】:

    标签: ember.js three.js ember-controllers


    【解决方案1】:

    要正确传递范围,请执行以下操作:

    requestAnimationFrame(this.renderLoop.bind(this));

    requestAnimationFrame(() => {this.renderLoop()});

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 2016-03-01
      • 2013-12-24
      • 2015-11-12
      • 2015-09-09
      • 2014-10-16
      • 1970-01-01
      相关资源
      最近更新 更多