Fixed: #1435 Adding DefineScalingGrid to DefineSprite

This commit is contained in:
Jindra Petřík
2021-03-13 10:00:04 +01:00
parent 65a8af4822
commit 1fe8d91995
4 changed files with 32 additions and 17 deletions

View File

@@ -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();
}
}
}