2011-03-25 40 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錯誤。