0

フロントエンドに 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;
})();

私のAngular Controllerで私は呼んでいます:

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 のすべての動作をモデルにカプセル化することでした。これが正しいアプローチであるかどうか、私があなたに確信が持てないのは何ですか?

ループを処理するディレクティブを作成した方がよいでしょうか? これは、私が使用しているアプローチに利点がありますか?

4

1 に答える 1

1

これは、ディレクティブの代わりにファクトリーを使用して、AngularJS と THREEjs で作成した例です。この例では、ファクトリ内部のレンダリング ループを使用しています。

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

お役に立てれば。

于 2014-02-09T22:23:10.983 に答える