我开始在游戏中收到很多#1502错误。 ("脚本执行时间过长")不同的Flash播放器版本,不同的用户,游戏中的随机位置。我自己无法复制它。
我收集游戏日志以防止未被捕获的错误,并且根据这些错误,用户在发生此错误前几秒钟与游戏进行了互动。这就是困扰我的原因,这也是我提出这个问题的原因。这不对。如果出现此错误,根据我的理解,他们不应该与它进行至少15秒的互动。
而且不仅仅是一个案例。所有这些新错误(每天数百个)在错误发生前1-10秒至少记录了一个用户操作。
起初我以为时间戳错了。我使用getTimer()
来获取它。我在游戏中插入while (true)
循环来测试这个并验证时间戳是正确的,并且在启动导致#1502错误的循环的操作后15秒发生。
此错误可能连接到TweenLite,因为所有堆栈跟踪都如下所示:
Error: Error #1502
at com.greensock.core::SimpleTimeline/renderTime()
at com.greensock::TweenLite$/updateAll()
我使用的TweenLite版本并不是最新的版本,但我在这个游戏中已经使用了1。5年,之前没有遇到任何问题。遗憾的是,我无法更新到最新版本,因为它不向后兼容,需要进行大量更改。
UPD要明确,问题是"如果用户能够在几秒前与游戏进行互动,我怎么能得到#1502错误?"
答案 0 :(得分:0)
您需要重构代码。这应该有所帮助并给出一些解释:
答案 1 :(得分:0)
原来这是一个JaveScript错误。在错误发生前1分钟,对JS函数进行了ExternalInterface调用,该函数出现了错误。 1分钟后,它突然抛出这个错误。我没有启用JS错误编组,但此错误仍然通过。堆栈是偶然的,与实际错误没有任何关系。