velocity at time expression fixes
diff --git a/player/index.html b/player/index.html
index 56828cd..db88135 100644
--- a/player/index.html
+++ b/player/index.html
@@ -103,7 +103,7 @@
var animData = {
container: document.getElementById('bodymovin'),
renderer: 'svg',
- loop: true,
+ loop: false,
autoplay: true,
autoloadSegments: true,
rendererSettings: {
@@ -111,8 +111,9 @@
},
path: 'exports/render/data.json'
};
+ anim = bodymovin.loadAnimation(animData);
- /*anim = bodymovin.loadAnimation(animData);
+ /*
anim.addEventListener('DOMLoaded',function(){
var animationJson = anim.animationData;
animationJson.layers[4].layers[2].layers[0].ef[0].ef[0].v.k[0].s[0] = 0;
diff --git a/player/js/utils/PropertyFactory.js b/player/js/utils/PropertyFactory.js
index 0728603..33a6d82 100644
--- a/player/js/utils/PropertyFactory.js
+++ b/player/js/utils/PropertyFactory.js
@@ -412,14 +412,14 @@
if(this.autoOriented && this.p.keyframes && this.p.getValueAtTime){
var v1,v2;
if(this.p.lastFrame+this.p.offsetTime < this.p.keyframes[0].t){
- v1 = this.p.getValueAtTime(this.p.keyframes[0].t-this.p.offsetTime+0.01, this.p.offsetTime);
- v2 = this.p.getValueAtTime(this.p.keyframes[0].t-this.p.offsetTime, this.p.offsetTime);
+ v1 = this.p.getValueAtTime(this.p.keyframes[0].t+0.01,0);
+ v2 = this.p.getValueAtTime(this.p.keyframes[0].t, 0);
}else if(this.p.lastFrame+this.p.offsetTime > this.p.keyframes[this.p.keyframes.length - 1].t){
- v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t-this.p.offsetTime, this.p.offsetTime);
- v2 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t-this.p.offsetTime-0.01, this.p.offsetTime);
+ v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t,0);
+ v2 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t-0.01, 0);
} else {
v1 = this.p.pv;
- v2 = this.p.getValueAtTime(this.p.lastFrame - 0.01, this.p.offsetTime);
+ v2 = this.p.getValueAtTime(this.p.lastFrame+this.p.offsetTime - 0.01, this.p.offsetTime);
}
//var prevV = this.p.getValueAtTime(this.p.lastFrame - 0.01, true);
this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index e311a22..24df58a 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -465,7 +465,7 @@
}.bind(this);
var valueAtTime = function valueAtTime(t) {
- return this.getValueAtTime(t*elem.comp.globalData.frameRate);
+ return this.getValueAtTime(t*elem.comp.globalData.frameRate, 0);
}.bind(this);
var velocityAtTime = function velocityAtTime(t) {
diff --git a/player/js/utils/expressions/ExpressionPropertyDecorator.js b/player/js/utils/expressions/ExpressionPropertyDecorator.js
index 5ceb34c..0f69824 100644
--- a/player/js/utils/expressions/ExpressionPropertyDecorator.js
+++ b/player/js/utils/expressions/ExpressionPropertyDecorator.js
@@ -7,7 +7,8 @@
function getValueAtTime(frameNum, offsetTime) {
var i = 0,len = this.keyframes.length- 1,dir= 1,flag = true;
var keyData, nextKeyData;
- offsetTime = this.offsetTime || 0;
+ offsetTime = offsetTime === undefined ? this.offsetTime : 0;
+ //console.log(this.offsetTime);
var retVal = typeof this.pv === 'object' ? [this.pv.length] : 0;
while(flag){
@@ -157,10 +158,11 @@
if(this.vel !== undefined){
return this.vel;
}
- var delta = 0.01;
+ var delta = -0.01;
frameNum *= this.elem.globalData.frameRate;
- var v1 = this.getValueAtTime(frameNum);
- var v2 = this.getValueAtTime(frameNum + delta);
+ //frameNum += this.elem.data.st;
+ var v1 = this.getValueAtTime(frameNum,0);
+ var v2 = this.getValueAtTime(frameNum + delta,0);
var velocity;
if(v1.length){
velocity = Array.apply(null,{length:v1.length});