From 3f0db1412d07b0f8bf9846985af46db7ac84e1a5 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Sun, 14 Dec 2014 01:47:08 +0100 Subject: [PATCH] mark sprite modfied when inner tag is removed --- .../ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java index 8d4fa2951..70a66ecca 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -2970,16 +2970,25 @@ public final class SWF implements SWFContainerItem, Timelined { if (t instanceof ShowFrameTag || ShowFrameTag.isNestedTagType(t.getId())) { List tags; if (timelined instanceof DefineSpriteTag) { - tags = ((DefineSpriteTag) timelined).getSubTags(); + DefineSpriteTag sprite = (DefineSpriteTag) timelined; + tags = sprite.getSubTags(); } else { tags = this.tags; } tags.remove(t); + if (timelined instanceof DefineSpriteTag) { + DefineSpriteTag sprite = (DefineSpriteTag) timelined; + sprite.setModified(true); + } timelined.getTimeline().reset(); } else { // timeline should be always the swf here if (removeDependencies) { removeTagWithDependenciesFromTimeline(t, timelined.getTimeline()); + if (timelined instanceof DefineSpriteTag) { + DefineSpriteTag sprite = (DefineSpriteTag) timelined; + sprite.setModified(true); + } } else { removeTagFromTimeline(t, timeline); }