从C# – 有没有办法确定swf是AVM1还是AVM2?

从C# – 有没有办法确定swf是AVM1还是AVM2?,第1张

概述> ActionScript 3.0提供了一种方法来确定swf是否适用于:1)AVM2(或更早);或2)AVM3. [ link1, link2] 我的问题: >从C#,有没有办法确定swf是用于AVM1还是AVM2? 当然. .swf规范可以在这里找到: http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_forma > ActionScript 3.0提供了一种方法来确定swf是否适用于:1)AVM2(或更早);或2)AVM3. [ link1,link2]

我的问题:

>从C#,有没有办法确定swf是用于AVM1还是AVM2?

解决方法 当然. .swf规范可以在这里找到:
http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf

fileAttributes,第60页,ActionScript3 UB [1].如果设置此位则为AVM2,否则为AVM1.这仅适用于版本9及更高版本的.swfs,但版本8或更低版本保证为AVM1.

快速找到这一点:

// Bytes from start of file: Signature + Version + fileLength + FrameSize + FrameRate + FrameCount + fileAttributes header 3 + 1 + 4 + (ceil(((swf[8] >> 3) * 4 - 3) / 8) + 1) + 2 + 2 + 2

swf [8]是swf的第8个字节.读取下一个字节,它是第5位.

如果文件被压缩(字节0 == 0x43),您可能必须在fileLength之后解压缩所有内容.使用zlib压缩swf并使用little Endian.

总结

以上是内存溢出为你收集整理的从C# – 有没有办法确定swf是AVM1还是AVM2?全部内容,希望文章能够帮你解决从C# – 有没有办法确定swf是AVM1还是AVM2?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1216348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存