Skip to content

Commit

Permalink
Fixed bug with skew-scale tweens
Browse files Browse the repository at this point in the history
Fixed issue where processed element nodes where being incorrectly referenced in ReuseFrames
Fixed issue where graphics where being exported as full animation in Images mode
  • Loading branch information
TomByrne committed Apr 25, 2016
1 parent 23856eb commit 44271c6
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 7 deletions.
2 changes: 1 addition & 1 deletion build/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.44.0
3.45.0
33 changes: 27 additions & 6 deletions html/ExtensionContent/Extensible/SVG.jsfl
Original file line number Diff line number Diff line change
Expand Up @@ -842,6 +842,11 @@
}
if(verbose)fl.trace("\n\nBEF:\n"+frameNode.toXMLString());

if(animNodes && childNode.@display.length()>0){
frameNode.@display = childNode.@display;
delete childNode.@display;
}

doSearchSelf = true;
var hasTrans = childNode.@transform.length()>0;
var parentTakenTrans = false;
Expand Down Expand Up @@ -1101,8 +1106,11 @@
if(ext.log){
var timer=ext.log.startTimer('extensible.SVG.processSimplifyOnes()');
}
var regex = new RegExp( "\\.9{" + this.decimalPointPrecision + "}(\\D)", "g" );
outputObj.string = outputObj.string.replace(regex, "1$1");
var regex = new RegExp( "(\\d)\\.9{" + this.decimalPointPrecision + "}(\\D)", "g" );
outputObj.string = outputObj.string.replace(regex, "$1$2");

regex = new RegExp( "(\\D)\\.9{" + this.decimalPointPrecision + "}(\\D)", "g" );
outputObj.string = outputObj.string.replace(regex, "$11$2");

regex = new RegExp( "1\\.0+(\\D)", "g" );
outputObj.string = outputObj.string.replace(regex, "1$1");
Expand Down Expand Up @@ -1530,6 +1538,19 @@
this.copyNodeContents(node, elementXML);
parent.insertChildBefore(node, elementXML);
delete parent.children()[node.childIndex()];

for(var i=0; i<this._layerCacheLists.length; i++){
var list = this._layerCacheLists[i];
var done = false;
for(var j=0; j<list.length; j++){
if(list[j] == node){
list[j] = elementXML;
done = true;
break;
}
}
if(done) break;
}
// }else{
// ext.warn("Error: multiple items with the same id found ("+id+")");
// }
Expand Down Expand Up @@ -2249,7 +2270,7 @@
}else if(element.symbolType=="graphic"){

var childFrame = element.firstFrame;
if(element.loop=="single frame" || frame.duration==1){
if(element.loop=="single frame" || frame.duration==1 || !this.animated){
elemSettings.startFrame = this._getPriorFrame(element.timeline, element.firstFrame);
elemSettings.frameCount = 1;
}else {
Expand Down Expand Up @@ -2476,8 +2497,8 @@
//fl.trace("\nframe: "+nextFrame.startFrame);
//addTweenKiller = (nextFrame.tweenType=="none" && (!loopAnim || !isLast));
var transPoint = nextElement.getTransformationPoint();
this.checkSkewQuadrant(skewX, time, lastSkX, lastTime, transAnimObj.skxScaleYList, transAnimObj.skxScaleXList, transAnimObj.skxTimeList, transAnimObj.skxSplineList, transPoint.x, transPoint.y, lastFrame.tweenType!="none")
this.checkSkewQuadrant(skewY, time, lastSkY, lastTime, transAnimObj.skyScaleXList, transAnimObj.skyScaleYList, transAnimObj.skyTimeList, transAnimObj.skySplineList, transPoint.y, transPoint.x, lastFrame.tweenType!="none")
this.checkSkewQuadrant(skewX, time, lastSkX, lastTime, transAnimObj.skxScaleYList, transAnimObj.skxScaleXList, transAnimObj.skxTimeList, transAnimObj.skxSplineList, transPoint.x, transPoint.y, nextFrame.tweenType!="none")
this.checkSkewQuadrant(skewY, time, lastSkY, lastTime, transAnimObj.skyScaleXList, transAnimObj.skyScaleYList, transAnimObj.skyTimeList, transAnimObj.skySplineList, transPoint.y, transPoint.x, nextFrame.tweenType!="none")
this._addAnimFrame(nextFrame, nextElement, invMatrix, time, startTime, forceDiscrete, rot, skewX, skewY, autoRotate, transAnimObj, timeline, i, allowRotTween);

lastFrame = nextFrame;
Expand Down Expand Up @@ -2589,7 +2610,7 @@

if(items.length>0 && (frameTimeStart!=0 || frameTimeEnd!=1)){ // don't bother if element is always there

var visTimes = [settings.animOffset + n - settings.startFrame, settings.animOffset + lastFrameInd - settings.startFrame];
var visTimes = [settings.animOffset + n - settings.startFrame, settings.animOffset + lastFrameInd - settings.startFrame + (settings.loopTweens ? 0 : 1)];
var visValues = ["inline", "none"];

if(settings.frameCount < realDur && settings.repeatCount=="indefinite"){
Expand Down

0 comments on commit 44271c6

Please sign in to comment.