2011-03-25 118 views
1

我弹震活,一个免费的在线游戏火炮的开发商: http://www.newgrounds.com/portal/view/564049VerifyError突然出现。帮帮我!

一切都已经运行平稳,但每一次的同时,为期4个小时左右,数百名的VerifyError的“错误: #1026“将显示在我的错误日志中。然后,他们会停下来。

我查看了VerifyError,发现“VerifyError类表示遇到格式错误或损坏的SWF文件时发生的错误。” Newgrounds上的SWF只是一个小型加载器SWF,它从另一个站点加载完整的游戏SWF,所以在那里肯定有问题。我很难过,因为游戏可以在几天内顺利运行,然后在没有任何SWF变化的情况下开始出现这些错误。

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

+0

你是否更新过Flash Player版本? – Saad 2011-03-25 19:20:55

+0

这不是我得到的错误。其实我从来没有遇到过它。这是数百个其他人从许多不同的网站玩游戏。 – kChamp 2011-03-26 01:43:15

+0

它是否会一直发生在个人球员身上,还是间歇性的?谁在主办完整的游戏SWF? – 2011-03-26 13:24:59

回答

0

我认为这可能是Flash播放器错误,请尝试禁用任何图形加速或缓存。确定他们使用什么图形卡可能会有帮助。

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

+0

感谢您的回应!在我的电脑上运行游戏时实际上并没有发生。它发生在我的玩家的电脑上。对于多人游戏托管,我使用Player.IO http://playerio.com/和不,即使没有做任何更改,问题也会开始。 – kChamp 2011-03-26 08:02:33

+0

好的,所以继承人想了一下,也许你当时的服务器正在关闭,或者某些东西是超时的,所以在你的代码中尝试连接它时有一个失效保护。做类似这样的事情: http://www.kirupa.com/forum/showthread.php?p=2120336 尝试loader.load(request); (错误:SecurityError){ \t show_display(error); } 有一些内部的影片剪辑出现错误消息,所以如果有错误,也许你的用户可以让你知道。 – Saad 2011-03-26 08:13:37

1

我知道原来的帖子已有两三年的历史,但由于我刚花了很多天试图解决类似的问题,并且由于此线程不包含我认为是正确的解释,所以我会发布我自己在这里调查的结论,供其他人使用:

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

用户系统上的Flash Player将接受NewGrounds SWF加载器,因为它的目标版本等于或低于所安装的版本。之后,除非Flash Player尝试访问Flash Player中的不可用功能,否则可以加载目标Flash Player版本较高的外部SWF,而不会引起Flash Player的任何投诉,然后它将引发VerifyError。

这个问题的零星性质,在4小时的激增中,可能与世界不同地区(因此不同时区)不同的Flash Player版本的不同渗透有关。在最近的Flash Player版本渗透率较低的国家/地区的非常活跃的休闲游戏时段(周末和晚上?),您可能会看到批次的这些VerifyErrors记录。

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

我可以建议,唯一可能帮助您的情况(不是我的,不幸)是确定NewGrounds加载程序SWF的目标版本(检查SWF中的第4个字节),然后执行以下操作之一:

  • 将您的游戏编译为与加载器目标相同的Flash Player版本。这样,您可以确定,如果NewGrounds加载器SWF已成功加载到用户的Flash Player中,那么SWF也可以在该版本中正常工作,或者

  • 在游戏的初始化代码中,检查功能。版本来确定用户系统上安装的Flash Player版本并将其用于分支控制,以便高级Flash Player功能仅用于适当的Flash Player版本。

在我的情况下,我可以访问加载程序代码,但不能加载它加载的数千个SWF代码。由于外部SWF以ByteArrays模式加载到加载器SWF副本中,因此我可以检查SWF的Flash Player目标版本字节(byteArray [3]),并将其与从Capabilities.version获得的安装的Flash Player'major.minor'版本进行比较,但由于SWF Flash Player目标版本字节(当前)随着Flash Player的每个次版本增量而递增,因此不可能将SWF目标字节(byteArray [3])映射到未来的Flash Player的major.minor版本,直到我们知道当前Flash Player的最大次要版本号为止。

希望任何遇到此问题的人都会比我们拥有更好的运气。

0

我在cs3 flash9的一个非常小的项目中发生了这个错误。所以我能够跟踪这个错误。

注意:此错误发射不正确。在我的项目中发生错误的原因不是因为swf错误,因为我不会将任何swf导入到我的项目中。

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

SOLUTION: 我改变了这一行: if(_mc.my_counter)_mc.my_counter--;

...并且验证错误消息消失的速度与其出现的速度一样快。看起来这是一个真正的as3错误。