Javascript three.js对象启动动画/游戏循环
我使用angularJS和Three.js作为前端 我创建了我的three.js对象,如下所示:Javascript three.js对象启动动画/游戏循环,javascript,angularjs,three.js,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(){ /
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);
}]);
由于MVC,我的第一个反应是将所有三个.js行为封装到一个模型中。我不确定的是,这是否是一个正确的方法
创建一个处理循环的指令会更好吗?这对我使用的方法有什么好处吗?这里是我用AngularJS和THREEjs制作的一个例子,使用工厂而不是指令。在本例中,我使用的是工厂内部的渲染循环
希望这能有所帮助。在这个项目中是否有必要?它似乎对你没有任何帮助。我想用它。该项目包含的内容超过了发布的内容,但这与问题无关。在这种情况下,您的方法似乎是正确的。您不会将其放在指令中。你只需要确保如果你创建了另一个控制器,它就是这个控制器的子控制器,这样你的作用域就不会被破坏。thxs