expression fixes
diff --git a/gulpfile.js b/gulpfile.js
index 427578b..b1a6a55 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -17,7 +17,7 @@
var eventstream = require("event-stream");
var jslint = require('gulp-jslint');
-var bm_version = '5.0.0';
+var bm_version = '5.0.1';
var files = [
{
diff --git a/package.json b/package.json
index 8db2fc2..c0c32a1 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,11 @@
{
- "name": "bodymovin",
- "version": "4.13.0",
+ "name": "lottie-web",
+ "version": "5.0.1",
"description": "After Effects plugin for exporting animations to SVG + JavaScript or canvas + JavaScript",
- "main": "./build/player/bodymovin.js",
+ "main": "./build/player/lottie.js",
"repository": {
"type": "git",
- "url": "https://github.com/bodymovin/bodymovin.git"
+ "url": "https://github.com/airbnb/lottie-web.git"
},
"scripts": {
"start": "gulp buildAll"
diff --git a/player/index.html b/player/index.html
index af9e2e1..026c43d 100644
--- a/player/index.html
+++ b/player/index.html
@@ -134,7 +134,7 @@
container: elem,
renderer: 'svg',
loop: false,
- autoplay: true,
+ autoplay: false,
rendererSettings: {
progressiveLoad:false
},
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index a0ff0b8..749b455 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -21,6 +21,10 @@
}
}
+ function isTypeOfArray(arr) {
+ return arr.constructor === Array || arr.constructor === Float32Array;
+ }
+
function shapesEqual(shape1, shape2) {
if(shape1._length !== shape2._length || shape1.c !== shape2.c){
return false;
@@ -41,7 +45,7 @@
if(tOfA === 'number' || tOfA === 'boolean' || a instanceof Number ){
return -a;
}
- if(a.constructor === Array){
+ if(isTypeOfArray(a)){
var i, lenA = a.length;
var retArr = [];
for(i=0;i<lenA;i+=1){
@@ -60,15 +64,15 @@
if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number)) {
return a + b;
}
- if(a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+ if(isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
a[0] = a[0] + b;
return a;
}
- if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+ if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
b[0] = a + b[0];
return b;
}
- if(a.constructor === Array && b.constructor === Array){
+ if(isTypeOfArray(a) && isTypeOfArray(b)){
var i = 0, lenA = a.length, lenB = b.length;
var retArr = [];
@@ -98,15 +102,15 @@
}
return a - b;
}
- if( a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+ if( isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
a[0] = a[0] - b;
return a;
}
- if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+ if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
b[0] = a - b[0];
return b;
}
- if(a.constructor === Array && b.constructor === Array){
+ if(isTypeOfArray(a) && isTypeOfArray(b)){
var i = 0, lenA = a.length, lenB = b.length;
var retArr = [];
while(i<lenA || i < lenB){
@@ -131,7 +135,7 @@
}
var i, len;
- if(a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+ if(isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
len = a.length;
arr = createTypedArray('float32', len);
for(i=0;i<len;i+=1){
@@ -139,7 +143,7 @@
}
return arr;
}
- if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+ if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
len = b.length;
arr = createTypedArray('float32', len);
for(i=0;i<len;i+=1){
@@ -158,7 +162,7 @@
return a / b;
}
var i, len;
- if(a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+ if(isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
len = a.length;
arr = createTypedArray('float32', len);
for(i=0;i<len;i+=1){
@@ -166,7 +170,7 @@
}
return arr;
}
- if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+ if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
len = b.length;
arr = createTypedArray('float32', len);
for(i=0;i<len;i+=1){
diff --git a/player/js/utils/expressions/TransformInterface.js b/player/js/utils/expressions/TransformInterface.js
index 65ca0e3..5573025 100644
--- a/player/js/utils/expressions/TransformInterface.js
+++ b/player/js/utils/expressions/TransformInterface.js
@@ -17,7 +17,7 @@
case "Position":
case "ADBE Position":
case 2:
- return transform.position;
+ return _thisFunction.position;
case "anchorPoint":
case "AnchorPoint":
case "Anchor Point":
diff --git a/player/js/utils/helpers/svg_elements.js b/player/js/utils/helpers/svg_elements.js
new file mode 100644
index 0000000..43a9ce4
--- /dev/null
+++ b/player/js/utils/helpers/svg_elements.js
@@ -0,0 +1,3 @@
+function createNS(type) {
+ return document.createElementNS(svgNS, type);
+}
\ No newline at end of file