我称之为浏览器崩溃,但更像是一个无限循环--我不是一个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 online,它冻结,崩溃,无限循环,你想叫它什么都行。有人知道为什么吗?好的,我花了很多时间在这上面(做这部分工作的程序员已经消失了)。甚至回到两周前的代码,是的,它做了同样的事情-无限循环。因此,现在我想找到一种方法,在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)
或
function clearTimer() {
clearInterval(intervalTimer);
}无论如何,以下是代码中与21秒计时器相关的部分:
var maxTime = 21;//在第二个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);
}->和END (或应该是end)
if(!flagGameover && !star.visible && idx_bullet < bullet_array.length)
initBullet();
else{
if(flagGameover){
console.log("GOTO GAMEOVER");
window.location = "../endgame.html";
}
}
}
}那么,有没有可能在21秒结束时取消计时器,然后让玩家进入endgame.html?我没有提到相位仪console.log --可以这样做吗?任何人以前做过这样的事情,基本上都是javascript抢救操作。
发布于 2017-11-19 16:52:18
我发现了那是什么。
它少了一个小轮子,比如:
var callGameover = false;
还有......
if(flagGameover){
if(callGameover == false){
callGameover = true;
console.log("GOTO GAMEOVER");
window.location = "endgame.html";我不知道这是否足以导致“无限循环”,但显然是这样的。把上面的放进去,然后循环就走了!
https://stackoverflow.com/questions/47225732
复制相似问题