From d19187469e514a231884bc6a4d7b9262e95d1ff0 Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 10 Apr 2014 08:47:04 -0700 Subject: [PATCH] Cleaned up some leftovers and changed formatting for better consistency with the existing three.js codebase. --- examples/js/BlendCharacter.js | 50 +++++++++++------------------------ 1 file changed, 16 insertions(+), 34 deletions(-) diff --git a/examples/js/BlendCharacter.js b/examples/js/BlendCharacter.js index e7976bc25e..6411bc28b7 100644 --- a/examples/js/BlendCharacter.js +++ b/examples/js/BlendCharacter.js @@ -4,14 +4,13 @@ THREE.BlendCharacter = function () { - var self = this; - this.animations = {}; - this.boneHelpers = []; this.weightSchedule = []; this.warpSchedule = []; - this.load = function(url, loadedCB) { + this.load = function( url, onLoad ) { + + var scope = this; var loader = new THREE.JSONLoader(); loader.load( url, function( geometry, materials ) { @@ -19,7 +18,7 @@ THREE.BlendCharacter = function () { var originalMaterial = materials[ 0 ]; originalMaterial.skinning = true; - THREE.SkinnedMesh.call( self, geometry, originalMaterial ); + THREE.SkinnedMesh.call( scope, geometry, originalMaterial ); // Create the animations @@ -28,19 +27,19 @@ THREE.BlendCharacter = function () { THREE.AnimationHandler.add( geometry.animations[ i ] ); var animName = geometry.animations[ i ].name; - self.animations[ animName ] = new THREE.Animation( self, animName ); + scope.animations[ animName ] = new THREE.Animation( scope, animName ); } // Create the debug visualization - self.skeletonHelper = new THREE.SkeletonHelper( self.skeleton, 0.5, 1 ); - self.add( self.skeletonHelper ); + scope.skeletonHelper = new THREE.SkeletonHelper( scope.skeleton, 0.5, 1 ); + scope.add( scope.skeletonHelper ); - self.toggleShowBones( false ); + scope.toggleShowBones( false ); // Loading is complete, fire the callback - loadedCB && loadedCB(); + if ( onLoad !== undefined ) onLoad(); } ); @@ -48,7 +47,6 @@ THREE.BlendCharacter = function () { this.update = function( dt ) { - for ( var i = this.weightSchedule.length - 1; i >= 0; --i ) { var data = this.weightSchedule[ i ]; @@ -61,10 +59,12 @@ THREE.BlendCharacter = function () { data.anim.weight = data.endWeight; this.weightSchedule.splice( i, 1 ); - // If we've fade out completely, stop the animation + // If we've faded out completely, stop the animation if ( data.anim.weight == 0 ) { + data.anim.stop( 0 ); + } } else { @@ -85,7 +85,7 @@ THREE.BlendCharacter = function () { this.updateWarps = function( dt ) { // Warping modifies the time scale over time to make 2 animations of different - // length match. This is useful for smoothing out transitions that get out of + // lengths match. This is useful for smoothing out transitions that get out of // phase such as between a walk and run cycle for ( var i = this.warpSchedule.length - 1; i >= 0; --i ) { @@ -127,15 +127,6 @@ THREE.BlendCharacter = function () { } - this.updateBoneHelpers = function() { - - for ( var i = 0; i < this.boneHelpers.length; ++i ) { - - this.boneHelpers[ i ].update(); - } - - }; - this.play = function(animName, weight) { this.animations[ animName ].play( 0, weight ); @@ -193,7 +184,7 @@ THREE.BlendCharacter = function () { this.applyWeight = function(animName, weight) { - this.animations[animName].weight = weight; + this.animations[ animName ].weight = weight; }; @@ -228,7 +219,7 @@ THREE.BlendCharacter = function () { this.stopAll = function() { - for (a in this.animations) { + for ( a in this.animations ) { if ( this.animations[ a ].isPlaying ) { this.animations[ a ].stop(0); @@ -246,16 +237,7 @@ THREE.BlendCharacter = function () { this.toggleShowBones = function( shouldShow ) { this.visible = !shouldShow; - - for ( var i = 0; i < self.boneHelpers.length; ++i ) { - - self.boneHelpers[ i ].traverse( function( obj ) { - - obj.visible = shouldShow; - - } ); - - } + this.skeletonHelper.setVisible( shouldShow ); } -- GitLab