Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript APNG num_plays在Firefox中有效,但在Chrome中无效_Javascript_Html_Google Chrome_Animation_Apng - Fatal编程技术网

Javascript APNG num_plays在Firefox中有效,但在Chrome中无效

Javascript APNG num_plays在Firefox中有效,但在Chrome中无效,javascript,html,google-chrome,animation,apng,Javascript,Html,Google Chrome,Animation,Apng,APNG文件规范供参考: num_plays定义动画PNG循环的次数。0是一个特殊值,表示动画将无限循环 我在网上找到了一些我想在网页上显示的APNg。他们都将num_plays设置为0。(在此特定示例中,来自神奇宝贝游戏的Ivysaur动画图像:) 我在Chrome中显示这个原始的APNG时没有问题,动画循环不断 但对我来说重要的是,动画只播放一次,然后显示最后一帧。我尝试了一些基于HTML和JS的解决方案,比如等待几秒钟,然后用我绘制的画布替换APNG img元素,但是我没有得到我想要的结果

APNG文件规范供参考:

num_plays定义动画PNG循环的次数。0是一个特殊值,表示动画将无限循环

我在网上找到了一些我想在网页上显示的APNg。他们都将num_plays设置为0。(在此特定示例中,来自神奇宝贝游戏的Ivysaur动画图像:)

我在Chrome中显示这个原始的APNG时没有问题,动画循环不断

但对我来说重要的是,动画只播放一次,然后显示最后一帧。我尝试了一些基于HTML和JS的解决方案,比如等待几秒钟,然后用我绘制的画布替换APNG img元素,但是我没有得到我想要的结果。图像将重置为动画结束时的第一帧,而不是最后一帧,或者有时图像内容的像素偏移会莫名其妙地不同

那时我发现我可以在APNG的acTL部分更改num_plays值,将循环次数更改为1,我就是这么做的

它在Firefox中工作得非常好!下面是一个示例,它准确地显示了我想要的行为:

但在Chrome中,在更改num_播放后,APNG将不再具有动画效果


是什么原因导致它无法在Chrome中设置动画?是否不支持非零num_播放?有什么替代方案可以让我获得与Firefox相同的行为?

问题是我修改了一个从互联网下载的APNG,它最初使用十六进制编辑器的播放次数为0。当我这样做时,我忽略了更新acTL部门的CRC;Firefox按照我的预期播放了格式错误的APNG,但Chrome中止了播放,因为我的APNG没有正确的CRC,无法满足规范要求