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];