Javascript el.style.fontSize=这个; el.style.zIndex=这个; el.style.width=此值。_maxSize+‘px’; el.style.textAlign='center'; el.style.overflow='hidde
el.style.fontSize=这个; el.style.zIndex=这个; el.style.width=此值。_maxSize+‘px’; el.style.textAlign='center'; el.style.overflow='hidden'; el.innerHTML='●;'; } el.style.left=x+‘px’; el.style.top=y+‘px’; el.style.color=颜色; el.data={ x:x, y:y, dx:Math.cos(rot)*速度+dx, 数学。罪恶(堕落)*速度+dy, 颜色:颜色, 年龄:Math.random()*.25 }; 如果(!foundEl){ document.getElementsByTagName('body')[0].appendChild(el); 这是粒子推动(el); } }, //移动现有粒子 _移动:函数(){ requestAnimFrame(此.\u animFn); //计算移动系数 var dif=this.\u time()-this.\u lastInterval; 这个。_lastInterval=这个。_time(); var delta=dif/20, 埃尔, D p=这个, r=数学功率(此电阻,δ), g=这个._重力*delta, a=dif/这个; 对于(变量i=0,l=p.length;iJavascript el.style.fontSize=这个; el.style.zIndex=这个; el.style.width=此值。_maxSize+‘px’; el.style.textAlign='center'; el.style.overflow='hidde,javascript,jquery,Javascript,Jquery,el.style.fontSize=这个; el.style.zIndex=这个; el.style.width=此值。_maxSize+‘px’; el.style.textAlign='center'; el.style.overflow='hidden'; el.innerHTML='●;'; } el.style.left=x+‘px’; el.style.top=y+‘px’; el.style.color=颜色; el.data={ x:x, y:y, dx:Math.c
停止
请将您的问题精简为a,并更详细地解释您的问题。307行代码太多了。@CertainPerformance我发布了整个函数,以便您可以看到我创建的函数类型。问题在于:fireforks.start(),如何再次终止此函数。您的编辑不会使其成为一个错误。请阅读如何创建它。另外,请编辑您的标题以总结您的问题。我猜您正在寻找一种方法来终止导致烟花显示的事件循环。没有办法终止函数。您应该发布firework.end
和firework.start
的代码,这样我们就可以帮助解决问题。从您的原始代码来看,它看起来像是\u addExplosion
调用自身-因此您可以添加一个函数end
,该函数将布尔值设置为false,并且仅当该布尔值为true时,will\u addExplosion
会再次调用自己。到目前为止,您建议的解决方案非常好,但还没有完成焰火。我不想为它创建一个按钮,我不想让玩家知道它。我尝试了这个变体,但不幸的是它不起作用:Start
这个想法是,Start按钮也被用作停止焰火的功能。即使使用stop按钮,我也无法停止焰火。你知道为什么会这样吗?@sharete你有没有试着在这么短的时间内运行这个代码段?我为自己工作——有时会发生额外的爆炸,什么的
fireworks.start(); //Start the fireworks.
stop: function() {
this._running = false;
window.clearTimeout();
for (var i = 0; i < this._particles.length; i++) {
this._particles[i].parentNode.removeChild(this._particles[i]);
}
},
if (this._running) {
window.setTimeout(function () { return fireworks._addExplosion.apply(fireworks); },
this._random(this._interval[1] - this._interval[0]) + this._interval[0]);
}
function stopFireworks() {
fireworks.stop();
}
<button onclick="stopFireworks()">Stop</button>