diff --git a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java index 3af8c1bcf..63989674b 100644 --- a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java @@ -688,10 +688,9 @@ public final class ImagePanel extends JPanel implements ActionListener, MediaDis int frameCount = timelined.getTimeline().getFrameCount(); int newframe; if (frameCount > 0) { - if (frame + 1 >= frameCount && !loop) { - newframe = frame; - } else { - newframe = (frame + 1) % frameCount; + newframe = (frame + 1) % frameCount; + if (newframe == 0 && !loop) { + stop(); } } else { newframe = frame; diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index a261bd55d..9c2e9a1cb 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -2825,6 +2825,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec ds.matrix = new MATRIX(); ds.ratio = i * 65535 / framesCnt; f.layers.put(1, ds); + f.layersChanged = true; tim.addFrame(f); } } else if (tag instanceof FontTag) { @@ -2836,6 +2837,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec ds.matrix = new MATRIX(); ds.time = i; f.layers.put(1, ds); + f.layersChanged = true; tim.addFrame(f); } } else { diff --git a/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java b/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java index 5c732140b..84ed0426b 100644 --- a/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java +++ b/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java @@ -397,7 +397,7 @@ public class PlayerControls extends JPanel implements ActionListener, MediaDispl totalFrameLabel.setText("" + totalFrames); if (frameRate != 0) { timeLabel.setText("(" + formatMs((currentFrame * 1000) / frameRate) + ")"); - totalTimeLabel.setText("(" + formatMs(((totalFrames - 1) * 1000) / frameRate) + ")"); + totalTimeLabel.setText("(" + formatMs((totalFrames * 1000) / frameRate) + ")"); } if (totalFrames <= 1 && playbackControls.isVisible()) { playbackControls.setVisible(false);