solved special characters
diff --git a/player/js/elements/TextElement.js b/player/js/elements/TextElement.js
index b30e890..18adf1f 100644
--- a/player/js/elements/TextElement.js
+++ b/player/js/elements/TextElement.js
@@ -40,8 +40,10 @@
var pathNodes;
var shapeStr = '';
for (j = 0; j < jLen; j += 1) {
- pathNodes = shapes[j].ks.k;
- shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);
+ if (shapes[j].ty === 'sh') {
+ pathNodes = shapes[j].ks.k;
+ shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);
+ }
}
return shapeStr;
};
diff --git a/player/js/elements/canvasElements/CVTextElement.js b/player/js/elements/canvasElements/CVTextElement.js
index 866a6e1..c58adb9 100644
--- a/player/js/elements/canvasElements/CVTextElement.js
+++ b/player/js/elements/canvasElements/CVTextElement.js
@@ -89,26 +89,29 @@
yPos += firstLine ? 1 : 0;
firstLine = false;
}
-
shapes = shapeData.shapes ? shapeData.shapes[0].it : [];
jLen = shapes.length;
matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);
if (singleShape) {
this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);
}
- commands = createSizedArray(jLen);
+ commands = createSizedArray(jLen - 1);
+ var commandsCounter = 0;
for (j = 0; j < jLen; j += 1) {
- kLen = shapes[j].ks.k.i.length;
- pathNodes = shapes[j].ks.k;
- pathArr = [];
- for (k = 1; k < kLen; k += 1) {
- if (k === 1) {
- pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));
+ if (shapes[j].ty === 'sh') {
+ kLen = shapes[j].ks.k.i.length;
+ pathNodes = shapes[j].ks.k;
+ pathArr = [];
+ for (k = 1; k < kLen; k += 1) {
+ if (k === 1) {
+ pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));
+ }
+ pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));
}
- pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));
+ pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));
+ commands[commandsCounter] = pathArr;
+ commandsCounter += 1;
}
- pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));
- commands[j] = pathArr;
}
if (singleShape) {
xPos += letters[i].l;
diff --git a/player/js/elements/htmlElements/HTextElement.js b/player/js/elements/htmlElements/HTextElement.js
index 866f25e..040a4ea 100644
--- a/player/js/elements/htmlElements/HTextElement.js
+++ b/player/js/elements/htmlElements/HTextElement.js
@@ -138,7 +138,7 @@
shapeData = null;
}
matrixHelper.reset();
- if (shapeData && shapeData.shapes) {
+ if (shapeData && shapeData.shapes && shapeData.shapes.length) {
shapes = shapeData.shapes[0].it;
matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);
shapeStr = this.createPathShape(matrixHelper, shapes);
diff --git a/player/js/elements/svgElements/SVGTextElement.js b/player/js/elements/svgElements/SVGTextElement.js
index 683ff0e..e580b02 100644
--- a/player/js/elements/svgElements/SVGTextElement.js
+++ b/player/js/elements/svgElements/SVGTextElement.js
@@ -15,6 +15,10 @@
import SVGCompElement from './SVGCompElement'; // eslint-disable-line
import SVGShapeElement from './SVGShapeElement';
+var emptyShapeData = {
+ shapes: [],
+};
+
function SVGTextLottieElement(data, globalData, comp) {
this.textSpans = [];
this.renderType = 'svg';
@@ -174,10 +178,11 @@
if (charData.t === 1) {
glyphElement = new SVGCompElement(charData.data, this.globalData, this);
} else {
- if (!charData.data.shapes) {
- charData.data.shapes = [];
+ var data = emptyShapeData;
+ if (charData.data && charData.data.shapes) {
+ data = charData.data;
}
- glyphElement = new SVGShapeElement(charData.data, this.globalData, this);
+ glyphElement = new SVGShapeElement(data, this.globalData, this);
}
this.textSpans[i].glyph = glyphElement;
glyphElement._debug = true;
diff --git a/player/js/utils/FontManager.js b/player/js/utils/FontManager.js
index 6be9323..a2e7434 100644
--- a/player/js/utils/FontManager.js
+++ b/player/js/utils/FontManager.js
@@ -8,6 +8,9 @@
w: 0,
size: 0,
shapes: [],
+ data: {
+ shapes: [],
+ },
};
var combinedCharacters = [];
// Hindi characters