首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突如其来的VerifyError。帮助!

突如其来的VerifyError。帮助!
EN

Stack Overflow用户
提问于 2011-03-26 03:14:55
回答 3查看 334关注 0票数 1

我是免费在线火炮游戏http://www.newgrounds.com/portal/view/564049的开发者ShellShock Live

一切都运行得很顺利,但在大约4个小时的时间里,我的错误日志中会偶尔出现数百个"VerifyError: Error #1026“。然后,他们就会停下来。

我查看了VerifyError,发现“VerifyError类表示当遇到格式错误或损坏的SWF文件时发生的错误。”Newground上的SWF只是一个小的加载程序SWF,它从另一个站点加载完整的游戏SWF,所以肯定有问题。我被难住了,因为游戏会在几天内运行得很好,然后在任何一个SWF都没有改变的情况下,突然开始得到这些错误。

ShellShock在任何时候都有成百上千的玩家在线,所以我想尽快解决这个问题。任何帮助都将不胜感激!谢谢!

EN

回答 3

Stack Overflow用户

发布于 2013-12-11 13:42:15

我知道最初的帖子已经有几年的历史了,但由于我刚刚花了很多天试图解决类似的问题,而且由于这个帖子没有包含我认为是正确的解释,所以我将把我自己的调查结论发布在这里,供其他人使用:

几乎可以肯定会记录VerifyError事件,因为NewGrounds上的加载器SWF的目标Flash Player版本低于导致此错误的游戏SWF的版本。

用户系统上的Flash Player将接受NewGrounds SWF加载器,因为它的目标版本等于或低于安装的版本。在此之后,一个面向更高版本Flash Player的外部SWF可以从Flash Player加载,除非它试图访问该Flash Player中不可用的功能,然后它将抛出VerifyError。

这个问题的偶然性,在4小时内激增,可能与较新的Flash Player版本在世界不同地区(因此是不同的时区)的不同渗透有关。在非常活跃的休闲游戏期间(周末和晚上?)在Flash Player最新版本普及率较低的国家,你可能会看到这些VerifyErrors的批量记录。

坏消息是,经过许多天的努力,我们一直无法找到解决这个问题的方法来捕获VerifyError。它甚至不会被UncaughtErrorEvent处理程序捕获!

我能建议的对你(不幸的不是我)可能有帮助的唯一一件事是确定NewGrounds加载器SWF的目标版本(检查SWF中的第四个字节),然后执行以下操作之一:

  • 编译您的游戏以与加载器目标相同的Flash Player版本为目标。这样你就可以确保,如果SWF加载器SWF被成功加载到用户的NewGrounds播放器中,你的SWF也将在该版本中正常工作,或者在游戏的初始化代码中使用
  • ,检查Capabilities.version以确定安装在用户系统上的Flash Player版本,并使用该版本进行分支控制,以便高级Flash Player功能仅在适当的Flash Player版本中使用。

在我的例子中,我有权访问加载器代码,但不能访问它加载的数千个SWF的代码。由于外部SWF被模版成加载器SWF的副本作为ByteArrays,我可以检查SWF的Flash Player目标版本字节(byteArray3),并将其与从Capabilities.version获得的已安装Flash Player 'major.minor‘版本进行比较,但是由于SWF Flash Player目标版本字节(当前)随着Flash Player的次要版本增加而增加,因此不可能将SWF目标字节(byteArray3)映射到未来的Flash Player 'major.minor’版本,直到我们知道当前Flash Player的最大次版本号将是多少。

希望任何遇到这种情况的人都会比我们更幸运。

票数 1
EN

Stack Overflow用户

发布于 2011-03-26 09:57:36

我认为这可能是一个flash播放器错误,尝试禁用任何图形加速或缓存。弄清楚他们使用的是什么显卡可能会有所帮助。

您是否对套接字服务器进行了更改?你用的是像smarfoxserver这样的吗?

票数 0
EN

Stack Overflow用户

发布于 2017-07-07 22:33:02

我在cs3 flash9的一个非常小的项目中遇到了这个错误。所以我能够追踪到这个错误。

注意:此错误被错误地发出。在我的项目中发出错误的原因不是因为swf有问题,因为我没有将任何swf导入到我的项目中。

原因:我的代码行是这样写的:_mc.my_counter && _mc.my_counter--;

解决方案:我将这一行改为: if(_mc.my_counter) _mc.my_counter--;

..。验证错误消息消失的速度和它显示的一样快。看起来这是一个真正的as3错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5437065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档