text baseline shift
diff --git a/player/index.html b/player/index.html
index e62da68..678651e 100644
--- a/player/index.html
+++ b/player/index.html
@@ -119,8 +119,8 @@
var elem = document.getElementById('bodymovin')
var animData = {
container: elem,
- renderer: 'svg',
- loop: true,
+ renderer: 'canvas',
+ loop: false,
autoplay: true,
rendererSettings: {
progressiveLoad:false
diff --git a/player/js/elements/TextElement.js b/player/js/elements/TextElement.js
index be6fda2..e39239e 100644
--- a/player/js/elements/TextElement.js
+++ b/player/js/elements/TextElement.js
@@ -280,6 +280,16 @@
}
}
+ if ('a' in animatorProps) {
+ animatorSelector = renderedData.a[j].s;
+ mult = animatorSelector.getMult(letters[i].anIndexes[j],data.t.a[j].s.totalChars);
+ if(mult.length){
+ animatorOffset += animatorProps.a.v[0] * mult[0];
+ } else{
+ animatorOffset += animatorProps.a.v[0] * mult;
+ }
+
+ }
}
flag = true;
while (flag) {
@@ -287,7 +297,7 @@
perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;
xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;
yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;
- matrixHelper.translate(0, -(renderedData.m.a.v[1] * yOff / 100) + yPos);
+ matrixHelper.translate(-renderedData.m.a.v[0]*letters[i].an/200, -(renderedData.m.a.v[1] * yOff / 100));
flag = false;
} else if (points) {
segmentLength += currentPoint.partialLength;
@@ -490,7 +500,6 @@
matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);
}
}else{
-
if(mult.length) {
matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);
} else {
@@ -510,6 +519,9 @@
}
if(this.maskPath) {
+ matrixHelper.translate(0,-documentData.ls);
+
+ matrixHelper.translate(0, renderedData.m.a.v[1]*yOff/100 + yPos,0);
if (data.t.p.p) {
tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);
var rot = Math.atan(tanAngle) * 180 / Math.PI;
@@ -519,7 +531,6 @@
matrixHelper.rotate(-rot * Math.PI / 180);
}
matrixHelper.translate(xPathPos, yPathPos, 0);
- matrixHelper.translate(renderedData.m.a.v[0]*letters[i].an/200, renderedData.m.a.v[1]*yOff/100,0);
currentLength -= renderedData.m.a.v[0]*letters[i].an/200;
if(letters[i+1] && ind !== letters[i+1].ind){
currentLength += letters[i].an / 2;
@@ -541,6 +552,7 @@
matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line])/2,0,0);
break;
}
+ matrixHelper.translate(0,-documentData.ls);
matrixHelper.translate(offf,0,0);
matrixHelper.translate(renderedData.m.a.v[0]*letters[i].an/200,renderedData.m.a.v[1]*yOff/100,0);
xPos += letters[i].l + documentData.tr/1000*documentData.s;
diff --git a/player/js/elements/canvasElements/CVTextElement.js b/player/js/elements/canvasElements/CVTextElement.js
index bdcf4fa..3be7267 100644
--- a/player/js/elements/canvasElements/CVTextElement.js
+++ b/player/js/elements/canvasElements/CVTextElement.js
@@ -88,6 +88,7 @@
if(documentData.ps){
matrixHelper.translate(documentData.ps[0],documentData.ps[1] + documentData.ascent,0);
}
+ matrixHelper.translate(0,-documentData.ls,0);
switch(documentData.j){
case 1:
matrixHelper.translate(documentData.justifyOffset + (boxWidth - lineWidths[letters[i].line]),0,0);
diff --git a/player/js/elements/svgElements/SVGTextElement.js b/player/js/elements/svgElements/SVGTextElement.js
index 97df530..8b3c408 100644
--- a/player/js/elements/svgElements/SVGTextElement.js
+++ b/player/js/elements/svgElements/SVGTextElement.js
@@ -89,6 +89,7 @@
if(documentData.ps){
matrixHelper.translate(documentData.ps[0],documentData.ps[1] + documentData.ascent,0);
}
+ matrixHelper.translate(0,-documentData.ls,0);
switch(documentData.j){
case 1:
matrixHelper.translate(documentData.justifyOffset + (boxWidth - lineWidths[letters[i].line]),0,0);
diff --git a/player/js/utils/DataManager.js b/player/js/utils/DataManager.js
index daab3c4..0cc7b79 100644
--- a/player/js/utils/DataManager.js
+++ b/player/js/utils/DataManager.js
@@ -665,6 +665,7 @@
data.singleShape = true;
}
documentData.yOffset = documentData.lh || documentData.s*1.2;
+ documentData.ls = documentData.ls || 0;
documentData.ascent = fontData.ascent*documentData.s/100;
}