diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/FrameExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/FrameExporter.java index e170fa5af..6af244237 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/FrameExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/FrameExporter.java @@ -347,10 +347,12 @@ public class FrameExporter { final Timeline tim = tim0; boolean exportAll = frames == null; - if (frames == null) { + + if (exportAll) { frames = new ArrayList<>(); - for (Frame frame : tim.getFrames()) { - frames.add(frame.frame); + List timFrames = tim.getFrames(); + for (int f = 0; f < timFrames.size(); f++) { + frames.add(f); } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java index 6cd499534..3632cc78c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java @@ -291,9 +291,11 @@ public class DefineButton2Tag extends ButtonTag implements ASMSourceContainer { @Override protected void initTimeline(Timeline timeline) { int maxDepth = 0; + //Note: There is frameIndex 0 everywhere, as below if frameDown is empty, it uses frameOver items + //I hope this won't cause problems... Frame frameUp = new Frame(timeline, 0); - Frame frameDown = new Frame(timeline, 0); Frame frameOver = new Frame(timeline, 0); + Frame frameDown = new Frame(timeline, 0); Frame frameHit = new Frame(timeline, 0); for (BUTTONRECORD r : this.characters) { if (swf.getCyclicCharacters().contains(r.characterId)) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java index cc7602193..9dd1ab720 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java @@ -249,9 +249,11 @@ public class DefineButtonTag extends ButtonTag implements ASMSourceContainer { DefineButtonCxformTag cxformTag = (DefineButtonCxformTag) swf.getCharacterIdTag(buttonId, DefineButtonCxformTag.ID); ColorTransform clrTrans = cxformTag == null ? null : cxformTag.buttonColorTransform; int maxDepth = 0; + //Note: There is frameIndex 0 everywhere, as below if frameDown is empty, it uses frameOver items + //I hope this won't cause problems... Frame frameUp = new Frame(timeline, 0); - Frame frameDown = new Frame(timeline, 0); Frame frameOver = new Frame(timeline, 0); + Frame frameDown = new Frame(timeline, 0); Frame frameHit = new Frame(timeline, 0); for (BUTTONRECORD r : this.characters) { if (swf.getCyclicCharacters().contains(r.characterId)) {