Browse Source

visibility track works.

Ben Houston 10 years ago
parent
commit
e6aad57c9f
2 changed files with 18 additions and 12 deletions
  1. 3 0
      examples/webgl_animation_track_clip_mixer.html
  2. 15 12
      src/animation/AnimationClip.js

+ 3 - 0
examples/webgl_animation_track_clip_mixer.html

@@ -268,6 +268,9 @@
 				var clip5 = THREE.AnimationClip.CreateMaterialColorAnimation( 10, [ new THREE.Color( 0xffffff ), new THREE.Color( 0xff0000 ), new THREE.Color( 0xff00ff ) ] );
 				var clip5 = THREE.AnimationClip.CreateMaterialColorAnimation( 10, [ new THREE.Color( 0xffffff ), new THREE.Color( 0xff0000 ), new THREE.Color( 0xff00ff ) ] );
 				mixer.addAction( new THREE.AnimationAction( clip5, 0, 1, 1, true ) );
 				mixer.addAction( new THREE.AnimationAction( clip5, 0, 1, 1, true ) );
 
 
+				var clip6 = THREE.AnimationClip.CreateVisibilityAnimation( 10 );
+				mixer.addAction( new THREE.AnimationAction( clip6, 0, 1, 1, true ) );
+
 			}
 			}
 
 
 			function initGUI() {
 			function initGUI() {

+ 15 - 12
src/animation/AnimationClip.js

@@ -282,21 +282,24 @@ THREE.AnimationClip.CreatePulsationAnimation = function( duration, pulseScale )
 THREE.AnimationClip.CreateVisibilityAnimation = function( duration ) {
 THREE.AnimationClip.CreateVisibilityAnimation = function( duration ) {
 
 
 	var keys = [];
 	var keys = [];
-
-	for( var i = 0; i < duration * 10; i ++ ) {
-
-		keys.push( {
-			time: ( i / 10.0 ),
-			value: ( Math.random() > 0.5 )
-		} );
-
-	}
-
-	var trackName = '.visibility';
+	keys.push( {
+		time: 0,
+		value: true
+	} );
+	keys.push( {
+		time: duration - 1,
+		value: false
+	} );
+	keys.push( {
+		time: duration,
+		value: true
+	} );
+
+	var trackName = '.visible';
 
 
 	var track = new THREE.KeyframeTrack( trackName, keys );
 	var track = new THREE.KeyframeTrack( trackName, keys );
 
 
-	var clip = new THREE.AnimationClip( 'visibility' + duration, duration, [ track ] );
+	var clip = new THREE.AnimationClip( 'visible' + duration, duration, [ track ] );
 	//console.log( 'scaleClip', clip );
 	//console.log( 'scaleClip', clip );
 
 
 	return clip;
 	return clip;