我使用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行为封装到模型中。如果这是一种正确的方法,我不确定你是什么?
创建一个关于循环的指令会更好吗?这对我使用的方法有什么好处吗?
答案 0 :(得分:1)
以下是我使用工厂而非指令使用AngularJS和THREEjs制作的示例。我在这个例子中使用了一个渲染循环,它是工厂内部的。
http://blog.tempt3d.com/2014/02/angularjs-threejs-servicefactory.html
希望这有帮助。