在用canvas些一个游戏,用MVC的设计模式,把js文件分成了3个,分别代表M,V,C。但是在执行过程中,三个文件都要在window.onload的时候执行。但是window.onload在一个html文件中只能有一个存在。当然,在一个js文件中我知道可以这样做:
window.onload=function(){
funtion1(){};
funtion2(){};
}
但是像这样的多个JS文件,而且多个js文件还有关联的情况下怎么解决?
一般我们这样子添加回调:
btn.onclick = func;
但是如果添加多个回调并且顺序执行肯定就不能这样了,因为这样后面的会覆盖前面的。
于是:
//element.addEventListener(type,listener,useCapture);
btn.addEventListener("click", func1, false);
btn.addEventListener("click", func2, false);
btn.addEventListener("click", func3, false);
执行顺序为func1->func2->func3。
需要注意
attachEvent
是IE自己的方法,
addEventListener
是w3c标准的东西。
入口只有一个就行了。重新整理一下逻辑吧
另外,可以看一下requirejs
function addLoadEvent(fn){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = fn;
}else{
window.onload = function(){
oldonload();
fn();
}
}
}
既然是用canvas些一个游戏,那就肯定支持window.addEventListener
jQuery

博客讨论了在使用Canvas开发游戏并应用MVC设计模式时,如何解决多个JS文件的加载问题。由于window.onload只能设置一个回调,作者提出了解决方案,包括使用addEventListener来添加多个事件监听器,确保代码按顺序执行,并引用了requirejs的addLoadEvent函数作为示例。此外,还提到了不同浏览器对事件监听器的支持差异以及回调执行顺序的重要性。
1万+

被折叠的 条评论
为什么被折叠?



