From d6dee8fb8cc0b2601d1cc0c9caae561711d2b693 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 4 Jan 2007 22:34:27 +0000 Subject: movie15 update (4jan07) git-svn-id: svn://tug.org/texlive/trunk@3143 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/movie15/animation.js | 200 +++++++++++------------ 1 file changed, 100 insertions(+), 100 deletions(-) (limited to 'Master/texmf-dist/doc/latex/movie15/animation.js') diff --git a/Master/texmf-dist/doc/latex/movie15/animation.js b/Master/texmf-dist/doc/latex/movie15/animation.js index 99829252365..fe239ee69ad 100644 --- a/Master/texmf-dist/doc/latex/movie15/animation.js +++ b/Master/texmf-dist/doc/latex/movie15/animation.js @@ -1,100 +1,100 @@ -///////////////////////////////////////////////////////////////// -// -// animation.js -// -// JavaScript for use with `3Djscript' option of \includemovie -// -// 888888888888888888888888888888888888888888888888888888888888 -// * 88 Set includemovie-option `repeat=0', to take effect !!! 88 -// 888888888888888888888888888888888888888888888888888888888888 -// -// * Activates keyframe animation embedded in the u3d file. -// * Arrow keys `Down', `Up' can be used for speeding up and -// slowing down a running animation, key `Home' for reverting -// to the default speed. -// -// * Adjustable parameters: -var rate = 1; // 1 --> use original speed as default -var palindrome = true; // true --> play forth and back -// -///////////////////////////////////////////////////////////////// - -//get the first animation in the scene -var myAnim = scene.animations.getByIndex(0); -myAnim.wallTime = 0; -myAnim.speed = 1; -myAnim.myLength = myAnim.endTime - myAnim.startTime; -scene.activateAnimation(myAnim); - -//method to set animation speed -myAnim.setSpeed = function (speed) { - speed = Math.abs(speed); - this.wallTime /= speed/this.speed; //correct the walltime - this.speed = speed; -}; - -//method to change animation speed by a factor -myAnim.changeSpeed = function (mult) { - this.wallTime /= mult; //correct the walltime - this.speed *= mult; -}; - -//set default speed -myAnim.setSpeed(rate); - -//menu items -runtime.addCustomMenuItem("faster", "Faster (Key Up)", "default", 0); -runtime.addCustomMenuItem("slower", "Slower (Key Down)", "default", 0); -runtime.addCustomMenuItem("default", "Default Speed (Key Home)", "default", 0); - -//menu handler to control speed -menuEventHandler = new MenuEventHandler(); -menuEventHandler.onEvent = function(e) { - if (e.menuItemName == "faster") { - myAnim.changeSpeed(1.25); - } - else if (e.menuItemName == "slower") { - myAnim.changeSpeed(1/1.25); - } - else if (e.menuItemName == "default") { - myAnim.setSpeed(rate); - } -}; -runtime.addEventHandler(menuEventHandler); - -//key handler to control speed -keyEventHandler = new KeyEventHandler(); -keyEventHandler.onKeyDown = true; -keyEventHandler.onEvent = function(e) { - switch(e.characterCode) { - case 30: //key up - myAnim.changeSpeed(1.05); - break; - - case 31: //key down - myAnim.changeSpeed(1/1.05); - break; - - case 4: //key home - myAnim.setSpeed(rate); - break; - } -}; -runtime.addEventHandler(keyEventHandler); - -//run the animation using a TimeEventHandler -myTimer = new TimeEventHandler(); -myTimer.onTimeChange = true; -myTimer.onEvent = function(e) { - myAnim.wallTime += e.deltaTime; - if (palindrome == true) { - myAnim.currentTime = - myAnim.startTime - + myAnim.myLength/2 - * (1 - Math.cos(Math.PI * myAnim.speed/myAnim.myLength * myAnim.wallTime)); - } else { - myAnim.currentTime = myAnim.startTime - + (myAnim.speed * myAnim.wallTime % myAnim.myLength); - } -}; -runtime.addEventHandler(myTimer); +///////////////////////////////////////////////////////////////// +// +// animation.js +// +// JavaScript for use with `3Djscript' option of \includemovie +// +// * Activates keyframe animation embedded in the u3d file. +// * Arrow keys `Down', `Up' can be used for speeding up and +// slowing down a running animation, key `Home' for reverting +// to the default speed. +// +// * Adjustable parameters: +var rate = 1; // 1 --> use original speed as default +var palindrome = true; // true --> play forth and back +// +///////////////////////////////////////////////////////////////// + +//get the first animation in the scene +var myAnim = scene.animations.getByIndex(0); +myAnim.wallTime = 0; +myAnim.speed = 1; +myAnim.myLength = myAnim.endTime - myAnim.startTime; +scene.activateAnimation(myAnim); + +//method to set animation speed +myAnim.setSpeed = function (speed) { + speed = Math.abs(speed); + this.wallTime /= speed/this.speed; //correct the walltime + this.speed = speed; +}; + +//method to change animation speed by a factor +myAnim.changeSpeed = function (mult) { + this.wallTime /= mult; //correct the walltime + this.speed *= mult; +}; + +//set default speed +myAnim.setSpeed(rate); + +//menu items +runtime.addCustomMenuItem("faster", "Faster (Key Up)", "default", 0); +runtime.addCustomMenuItem("slower", "Slower (Key Down)", "default", 0); +runtime.addCustomMenuItem("default", "Default Speed (Key Home)", "default", 0); + +//menu handler to control speed +menuEventHandler = new MenuEventHandler(); +menuEventHandler.onEvent = function(e) { + if (e.menuItemName == "faster") { + myAnim.changeSpeed(1.25); + } + else if (e.menuItemName == "slower") { + myAnim.changeSpeed(1/1.25); + } + else if (e.menuItemName == "default") { + myAnim.setSpeed(rate); + } +}; +runtime.addEventHandler(menuEventHandler); + +//key handler to control speed +keyEventHandler = new KeyEventHandler(); +keyEventHandler.onKeyDown = true; +keyEventHandler.onEvent = function(e) { + switch(e.characterCode) { + case 30: //key up + myAnim.changeSpeed(1.05); + break; + + case 31: //key down + myAnim.changeSpeed(1/1.05); + break; + + case 4: //key home + myAnim.setSpeed(rate); + break; + + case 1: //key end + myAnim.setSpeed(rate); + break; + } +}; +runtime.addEventHandler(keyEventHandler); + +//run the animation using a TimeEventHandler +myTimer = new TimeEventHandler(); +myTimer.onTimeChange = true; +myTimer.onEvent = function(e) { + myAnim.wallTime += e.deltaTime; + if (palindrome == true) { + myAnim.currentTime = + myAnim.startTime + + myAnim.myLength/2 + * (1 - Math.cos(Math.PI * myAnim.speed/myAnim.myLength * myAnim.wallTime)); + } else { + myAnim.currentTime = myAnim.startTime + + (myAnim.speed * myAnim.wallTime % myAnim.myLength); + } +}; +runtime.addEventHandler(myTimer); -- cgit v1.2.3