three.js对象开始动画/游戏循环

时间:2013-11-08 14:24:04

标签: javascript angularjs three.js

我使用angularJS和Three.js作为我的前端。

我已经创建了我的three.js对象:

var ThreeObject = (function() {
//constructor
function ThreeObject() {}

ThreeObject.prototype.init = functio init (){
//init scene,renderer,....
};

ThreeObject.prototype.update = function update(){
//update various objects attatched to scene
};

ThreeObject.prototype.draw = function draw(){
this.renderer.render(this.scene,this.camera);
};

return ThreeObject;
})();

在我的角度控制器中我打电话:

app.controller('Controller', ['$scope', '$http', function($scope,$http) {

    var foo = new ThreeObject(800,600);
    foo.init(document.getElementById('container'));

    function loop() {
        foo.update();
        foo.draw();
        requestAnimationFrame(loop);
    };

    requestAnimationFrame(loop);
 }]);

由于angular促进MVC,我的第一个响应是将所有three.js行为封装到模型中。如果这是一种正确的方法,我不确定你是什么?

创建一个关于循环的指令会更好吗?这对我使用的方法有什么好处吗?

1 个答案:

答案 0 :(得分:1)

以下是我使用工厂而非指令使用AngularJS和THREEjs制作的示例。我在这个例子中使用了一个渲染循环,它是工厂内部的。

http://blog.tempt3d.com/2014/02/angularjs-threejs-servicefactory.html

希望这有帮助。