供参考的 APNG 文件规范:https ://wiki.mozilla.org/APNG_Specification
num_plays 定义动画 PNG 应该循环的次数。0 是一个特殊值,表示动画将无限循环。
我在网上找到了一些想要在网页上显示的 APNG。它们都将 num_plays 设置为 0。(在此特定示例中,来自 Pokémon 游戏的 Ivysaur 动画图像:https ://cdn.bulbagarden.net/upload/c/c8/Spr_3e_002.png )
我在 Chrome 中显示这个原始 APNG 没有问题,动画在其中无限循环。
但对我来说重要的是动画只播放一次,然后显示最后一帧。我为此尝试了一些基于 HTML 和 JS 的解决方案,例如等待几秒钟,然后将 APNG img 元素替换为我绘制的画布,但我无法获得我想要的结果。图像会在动画结束时重置为第一帧而不是最后一帧,或者有时图像内容的像素偏移量莫名其妙地不同。
就在那时我发现我可以更改 APNG 的 acTL 部分中的 num_plays 值以将其循环次数更改为 1 - 所以我做到了。
它在 Firefox 中完美运行!这是一个示例,它准确显示了我想要的行为:
但在 Chrome 中,APNG 在更改 num_plays 后根本不再动画。
什么可能导致它在 Chrome 中没有动画?不支持非零 num_plays 吗?我必须有哪些替代方法才能获得与 Firefox 中相同的行为?