我称这是一个浏览器崩溃,但更像是一个无限循环 - 我几乎不是一个JavaScript专家。发生的事情是游戏到达终点,浏览器(在这种情况下是firefox)只是继续下去 - 更像是冻结,没有快照,错误信息,没有任何东西。您必须完全关闭浏览器。现在真正奇怪的是这个完美无缺 - 离线。这只是在线发生的。关于这一点的另一个奇怪的事情是(在代码中)它第一次重置游戏 - 这也在线上和关闭都很完美。第二次。 像这样:(这是其中的一部分)
function resetGame(){
//reset game
好的以上工作在线和关闭,玩家被淘汰出局,重新开始。然而,然而;
function moveToEndGame(){
console.log("TIMER END");
var twn = game.add.tween(bg).to({alpha:0},tween_speed,"Linear",true);
twn.onComplete.addOnce(function(){flagGameover = true;},this);
}
if(!flagGameover && !star.visible && idx_bullet < bullet_array.length)
initBullet();
else{
if(flagGameover){
console.log("GOTO GAMEOVER");
window.location = "../endgame.html";
}
}
}
}
好的,离线它直接进入endgame.html在线,它冻结,崩溃,无限循环,无论你想要什么叫它。 任何人都知道为什么? 好吧,花了几个小时和几小时(这个部分的程序员已经消失了)。甚至在2周前回到了代码,是的,是的,它做了同样的事情 - 无限循环。 所以现在我想找到一种方法在21秒计时器结束时“中止javascript”。我从其他帖子中遇到过很多事情,例如:
// creates a new exception type:
function FatalError(){ Error.apply(this, arguments); this.name = "FatalError"; }
FatalError.prototype = Object.create(Error.prototype);
或
function javascript_abort()
但是....
即使抛出异常,它也只会终止当前的事件循环。传递给setTimeout或DOM / XMLHttpRequest事件处理程序的回调仍将在他们的时间到来时运行。
或者这个: 函数(setTimer和两个setIntervals)
OR
function clearTimer() {
clearInterval(intervalTimer);
}
无论如何,这里是代码中与21秒计时器相关的部分:
var maxTime = 21; //在SECOND var timerEvent = null;
这是添加计时器的地方(在3秒动画之后)
console.log(“完成动画和添加计时器”);
和这个
timerEvent = game.time.events.add(Phaser.Timer.SECOND * maxTime, moveToEndGame, this);
},this);
function moveToEndGame(){
console.log("TIMER END");
var twn = game.add.tween(bg).to({alpha:0},tween_speed,"Linear",true);
twn.onComplete.addOnce(function(){flagGameover = true;},this);
}
-----------&GT;和结束(或应该是结束)
if(!flagGameover && !star.visible && idx_bullet < bullet_array.length)
initBullet();
else{
if(flagGameover){
console.log("GOTO GAMEOVER");
window.location = "../endgame.html";
}
}
}
}
所以有可能在21秒结束时杀掉计时器,其他所有东西都可以让玩家去玩endgame.html ?????????我没有提到phaser console.log - 可以这样做吗?以前任何人都会这样做,基本上是一个javascript打捞操作。
答案 0 :(得分:0)
我发现它是什么。
它错过了一个callover,如:
var callGameover = false;
和......
if(flagGameover){
if(callGameover == false){
callGameover = true;
console.log("GOTO GAMEOVER");
window.location = "endgame.html";
我不知道这足以导致无限循环&#34;但显然是。将上面的内容放入并循环消失!