Fixed: #1435 Adding DefineScalingGrid to DefineSprite

This commit is contained in:
Jindra Petřík
2021-03-13 21:08:23 +01:00
parent 65a8af4822
commit 1fe8d91995
4 changed files with 32 additions and 17 deletions
@@ -3150,7 +3150,9 @@ public final class SWF implements SWFContainerItem, Timelined {
ReadOnlyTagList tags = timelined.getTags();
int index;
if (frame != null) {
if ((tag instanceof DefineScalingGridTag) && (timelined instanceof DefineSpriteTag)) {
index = this.tags.indexOf(timelined) + 1;
} else if (frame != null) {
if (frame.showFrameTag != null) {
index = tags.indexOf(frame.showFrameTag);
} else {
@@ -3177,20 +3179,25 @@ public final class SWF implements SWFContainerItem, Timelined {
}
}
if (index > -1) {
timelined.addTag(index, tag);
if ((tag instanceof DefineScalingGridTag) && (timelined instanceof DefineSpriteTag)) {
DefineScalingGridTag scalingGrid = (DefineScalingGridTag) tag;
scalingGrid.characterId = ((DefineSpriteTag) timelined).spriteId;
this.addTag(index, tag);
} else {
timelined.addTag(tag);
}
if (index > -1) {
timelined.addTag(index, tag);
} else {
timelined.addTag(tag);
}
timelined.resetTimeline();
timelined.resetTimeline();
if (timelined instanceof DefineSpriteTag) {
DefineSpriteTag sprite = (DefineSpriteTag) timelined;
sprite.frameCount = timelined.getTimeline().getFrameCount();
}
if (timelined == this) {
frameCount = getTimeline().getFrameCount();
if (timelined instanceof DefineSpriteTag) {
DefineSpriteTag sprite = (DefineSpriteTag) timelined;
sprite.frameCount = timelined.getTimeline().getFrameCount();
}
if (timelined == this) {
frameCount = getTimeline().getFrameCount();
}
}
}
@@ -209,4 +209,10 @@ public class DefineScalingGridTag extends Tag implements CharacterIdTag {
targetRect[i].yMin = Math.rint(targetRect[i].yMin / SWF.unitDivisor);
}
}
@Override
public String toString() {
return super.toString() + " (" + characterId + ")";
}
}