fixes
diff --git a/extension/jsx/utils/effectsHelper.jsx b/extension/jsx/utils/effectsHelper.jsx
index 16def9f..0915fa5 100644
--- a/extension/jsx/utils/effectsHelper.jsx
+++ b/extension/jsx/utils/effectsHelper.jsx
@@ -24,7 +24,7 @@
case 'ADBE Checkbox Control':
return effectTypes.checkboxControl;
default:
- bm_eventDispatcher.log(name);
+ //bm_eventDispatcher.log(name);
return '';
}
}
diff --git a/extension/jsx/utils/textAnimatorHelper.jsx b/extension/jsx/utils/textAnimatorHelper.jsx
index e6a02a3..6afb248 100644
--- a/extension/jsx/utils/textAnimatorHelper.jsx
+++ b/extension/jsx/utils/textAnimatorHelper.jsx
@@ -34,10 +34,6 @@
if (selectorType === 0) {
var advancedProperty = selectorProperty.property('ADBE Text Range Advanced');
- len = advancedProperty.numProperties;
- for (i = 0; i < len; i += 1) {
- bm_eventDispatcher.log(advancedProperty.property(i + 1).matchName);
- }
ob.t = 0;
ob.xe = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Levels Max Ease'), frameRate);
ob.ne = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Levels Min Ease'), frameRate);
diff --git a/player/index.html b/player/index.html
index faf663a..ebe10c7 100644
--- a/player/index.html
+++ b/player/index.html
@@ -12,8 +12,8 @@
}
#bodymovin{
background-color:#000;
- width:250px;
- height:250px;
+ width:800px;
+ height:800px;
display:block;
overflow: hidden;
transform: translate3d(0,0,0);
@@ -21,6 +21,10 @@
opacity: 1;
}
+ rect{
+ opacity: .5!important;
+ }
+
</style>
<!-- build:js bodymovin.js -->
<script src="js/main.js"></script>
@@ -82,7 +86,7 @@
var animData = {
container: document.getElementById('bodymovin'),
- renderer: 'html',
+ renderer: 'svg',
loop: false,
prerender: false,
autoplay: true,
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index 896d71f..38cbe6e 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -217,11 +217,11 @@
this.frameRate = this.animationData.fr;
this.firstFrame = Math.round(this.animationData.ip);
this.frameMult = this.animationData.fr / 1000;
- /*
- this.firstFrame = 761;
- this.totalFrames = 1;
- this.animationData.tf = 1;
- //this.frameMult = 10000/1000;
+ //*
+ this.firstFrame = 243;
+ this.totalFrames = 2;
+ this.animationData.tf = 2;
+ //this.frameMult = 1/100;
//*/////
this.trigger('config_ready');
this.loadSegments();
diff --git a/player/js/mask.js b/player/js/mask.js
index 8ed4adb..5b1c26e 100644
--- a/player/js/mask.js
+++ b/player/js/mask.js
@@ -19,7 +19,7 @@
var currentMasks = [];
var j, jLen;
var layerId = randomString(10);
- var rect, expansor, feMorph;
+ var rect, expansor, feMorph,x;
var maskType = 'clipPath', maskRef = 'clip-path';
for (i = 0; i < len; i++) {
@@ -38,7 +38,7 @@
currentMasks.push(rect);
}
- if(properties[i].mode == 'n') {
+ if(properties[i].mode == 'n' || properties[i].cl === false) {
this.viewData[i] = {
prop: PropertyFactory.getShapeProp(this.element,properties[i],3,this.dynamicProperties,null)
};
@@ -67,7 +67,7 @@
if(properties[i].x.k !== 0){
maskType = 'mask';
maskRef = 'mask';
- var x = PropertyFactory.getProp(this.element,properties[i].x,0,null,this.dynamicProperties);
+ x = PropertyFactory.getProp(this.element,properties[i].x,0,null,this.dynamicProperties);
var filterID = 'fi_'+randomString(10);
expansor = document.createElementNS(svgNS,'filter');
expansor.setAttribute('id',filterID);
@@ -84,6 +84,7 @@
}
}else{
feMorph = null;
+ x = null;
}
@@ -157,7 +158,7 @@
MaskElement.prototype.renderFrame = function () {
var i, len = this.masksProperties.length;
for (i = 0; i < len; i++) {
- if(this.masksProperties[i].mode !== 'n'){
+ if(this.masksProperties[i].mode !== 'n' && this.masksProperties[i].cl !== false){
if(this.viewData[i].prop.mdf || this.firstFrame){
this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);
}
@@ -174,7 +175,6 @@
this.storedData[i].lastOperator = 'dilate';
this.storedData[i].elem.setAttribute('filter',null);
}
- console.log(this.storedData[i].x.v*2);
this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);
}
diff --git a/player/js/utils/PropertyFactory.js b/player/js/utils/PropertyFactory.js
index 9b89cba..e3b8244 100644
--- a/player/js/utils/PropertyFactory.js
+++ b/player/js/utils/PropertyFactory.js
@@ -59,7 +59,7 @@
fnc = bez.getEasingCurve(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y,keyData.n);
keyData.__fnct = fnc;
}
- perc = fnc('',(frameNum)-(keyData.t-this.offsetTime),0,1,(nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime));
+ perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
var distanceInLine = bezierData.segmentLength*perc;
var segmentPerc;
@@ -146,7 +146,7 @@
}else if(frameNum < keyData.t-this.offsetTime){
perc = 0;
}else{
- perc = fnc('',(frameNum)-(keyData.t-this.offsetTime),0,1,(nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime));
+ perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
}
}
@@ -222,7 +222,7 @@
}else if(frameNum < keyData.t-this.offsetTime){
perc = 0;
}else{
- perc = fnc('',(frameNum)-(keyData.t-this.offsetTime),0,1,(nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime));
+ perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
}
keyPropE = keyData.e[0];
}
@@ -483,6 +483,8 @@
this.pv.v[i] = new Array(jLen);
}
this.lastFrame = initFrame;
+ var shapeData = type === 3 ? data.pt : data.ks;
+ checkExpressions.bind(this)(elem,shapeData);
}
var EllShapeProperty = (function(){
@@ -1100,7 +1102,7 @@
}else{
mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));
}
- mult = easer('',mult,0,1,1);
+ mult = easer(mult);
}else if(type == 3){
if(e === s){
mult = ind >= e ? 0 : 1;
@@ -1108,7 +1110,7 @@
mult = 1 - max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));
}
- mult = easer('',mult,0,1,1);
+ mult = easer(mult);
}else if(type == 4){
if(e === s){
mult = ind >= e ? 0 : 1;
diff --git a/player/js/utils/bez.js b/player/js/utils/bez.js
index cc6fe4c..bb0e006 100644
--- a/player/js/utils/bez.js
+++ b/player/js/utils/bez.js
@@ -16,9 +16,8 @@
}
var A0, B0, C0;
var A1, B1, C1;
- easingFunctions[encodedFuncName] = function(x, t, b, c, d) {
- var tt = t/d;
- x = tt;
+ easingFunctions[encodedFuncName] = function(tt) {
+ var x = tt;
var i = 0, z;
while (++i < 20) {
C0 = 3 * aa;
diff --git a/player/js/utils/common.js b/player/js/utils/common.js
index ca93c69..c1ac63b 100644
--- a/player/js/utils/common.js
+++ b/player/js/utils/common.js
@@ -1,4 +1,4 @@
-var subframeEnabled = true;
+var subframeEnabled = false;
var cachedColors = {};
var bm_rounder = Math.round;
var bm_rnd;
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index 45f3868..608b6d3 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -201,8 +201,12 @@
this.lastValue = this.v;
this.mdf = true;
}
+ }else if(this.v.i){
+ // Todo Improve validation for masks and shapes
+ this.mdf = true;
}else{
len = this.v.length;
+ console.log(this.v);
for(i = 0; i < len; i += 1){
if(this.v[i] !== this.lastValue[i]){
this.lastValue[i] = this.v[i];