这个问题一直从去年遗留到现在,今天找个空,把她找到了。
是有
原创文章
用于HTML5游戏开发的资源加载器
之前我在开发一个飞机射击类的html5游戏,需要处理一下类似图片和音频的加载,因为web workers暂时还不是大部分浏览器都支持,所以我开发了一个资源加载器SourceLoader。
游戏开发的话,我们需要加载各种各样的素材和数据(加载数据我暂时还没并在这个类里一起处理)
为了让大家更好的关注游戏的用户体验,我们需要更多便利的工具,现在我来介绍下SourceLoader。
var rl = new ResourceLoader();
rl.add({ type: "image", key: "pic1", src: "1.jpg" });
ResourceLoader 有 add 方法,参数是一个json对象,type表示资源的类型,暂时有”image”,”audio”,”video” 3种,分别表示图片、音频、视频资源;key表示资源使用的时候对应的名字,比如 rl.rs["pic1"] 就可以获得 1.pig的Image对象;src表示该资源的URL地址。
以下我们用一个单元测试的用例来介绍下回调:
asyncTest("resource list items callback test", function () {
var rl = new ResourceLoader();
rl.add({ type: "image", key: "pic1", src: "1.jpg" });
rl.add({ type: "audio", key: "audio1", src: "01.mp3" });
rl.add({ type: "video", key: "video1", src: "01.mp4" });
rl.itemLoad = function () {
ok(true, "item " + this.type + " callback success");
}
rl.onload = function () {
ok(true, "all items callback success");
start();
}
rl.load();
});
itemLoad表示每个资源加载完成时的回调事件,里面的this表示当前的资源的json,比如1.pig加载完的时候,this表示{ type: “image”, key: “pic1″, src: “1.jpg” }。
onload表示所有资源都加载完之后的回调事件,平时可以在所有资源都加载完毕之后就正式进入游戏(开始执行事件绑定或开始画图),比如这样:
fl.prototype.startGame = function (tfn) {
this.x = this.canvas.width / 2 - 25;
this.y = this.canvas.height - 50;
var fobj = this;
this.loader.onload = function () {
fobj.regEvent();
fobj.draw(fobj, tfn);
};
this.loader.load();
}
要开始资源加载的时候,我们可以使用 load 方法。
另外,该类也有清空资源的方法
rl.clearItem("pic1");
rl.clearAll();
假如大家有兴趣使用 ResourceLoader 的话,可以关注一下,源代码可以在这里下载
https://github.com/kinogam/ResourceLoader
分享到:
相关推荐
在提供的压缩包文件中,`Browes 判断.asp`和`Browes 浏览器判断.asp`可能是用于服务器端进行浏览器检测的ASP文件,而`CheckBr(动态加载Css).js`可能是用于客户端JavaScript动态加载CSS并进行浏览器判断的脚本。...
但是,需要注意的是,`DocumentCompleted`并不总是意味着所有内容都已经加载完毕,特别是当页面中存在iframe或者其他外部资源(如图片、脚本)时,这些子资源的加载不会触发`DocumentCompleted`事件。 为了确保页面...
`OnBeforeNavigate`事件在导航开始之前触发,`OnNavigateComplete2`事件则在URL导航完成时触发,但这并不意味着网页内容已经完全加载,因为可能还有一些资源(如图片或脚本)尚未加载。真正能表示页面完全加载的事件...
总的来说,水平滚动动态加载是一种提高网页性能和用户体验的有效方法,通过智能地加载内容,可以减少用户等待时间,同时节约网络资源。在实际应用中,我们需要结合JavaScript、Ajax、Intersection Observer API以及...
JavaScript可以通过监听`window.onload`或`document.readyState`事件来判断页面是否加载完成。当这些事件触发时,可以调用相应的函数隐藏加载提示: ```javascript window.onload = function() { var ...
"Jquery网页部分内容加载"这个主题就涉及到了如何利用jQuery库实现网页内容的按需加载,即延迟加载(Lazy Loading)或局部加载(Partial Loading)。这种方法可以显著提高页面加载速度,减少用户等待时间,同时节约...
这些文件可以作为学习和实践延迟加载技术的资源,你可以通过查看源代码了解其工作原理,并根据自己的需求进行定制和应用。 使用这类插件的好处包括: - **提高页面加载速度**:只加载用户当前看到的内容,降低...
3. 如果需要根据某些条件来决定是否加载用户控件,可以在Page_Load事件或其他适当的事件处理程序中进行判断和加载。 四、处理用户控件的事件 由于用户控件是动态加载的,我们需要在父页面中注册其事件处理程序。...
在IT行业中,尤其是在移动应用开发或者网页设计领域,"gride加载动态图片"是一个重要的技术话题。Gride(通常指的是Grid系统,例如CSS Grid或UI框架中的Grid组件)是一种布局方式,它允许开发者以网格的形式组织和...
懒加载是一种策略,它推迟非可视区域内的资源加载,直到用户滚动到它们将要显示的位置。这种技术尤其适用于图片丰富的网站,如淘宝商城,因为图片是网页中占据流量最大的部分。 首先,我们需要理解懒加载的工作原理...
动态加载图片相册是一种常见的网页交互功能,常用于节省页面加载时间,提升用户体验。这个"动态加载图片相册.zip"文件可能包含实现这种功能的源代码、样式表和示例图片,具体文件名"jiaoben181698"可能是某种编码...
实现懒加载可以借助JavaScript库,如lozad.js或lazysizes,它们能够监听滚动事件,判断图片是否进入视口,然后触发加载。此外,HTML5的Intersection Observer API也可以用于实现这个功能,它提供了更加高效且低耦合...
总结起来,网页图片随滚动条加载是提升网页性能、优化用户体验的有效手段,利用AJAX和异步加载技术,可以有效地减少页面初始化的加载时间,提高网页的响应速度,特别是在图片资源丰富的网页上,效果尤为明显。
网页延迟加载,也称为懒加载(Lazy Loading),是一种优化网页性能的技术,主要应用于图片和视频等大容量媒体资源。这种技术允许网页只在用户滚动到可视区域时才加载相关资源,而不是在页面初次加载时一次性加载所有...
在JavaScript中,可以监听滚动事件,判断图片是否进入视口,如果在,就异步加载该图片。例如,可以使用`Intersection Observer API`来检测元素是否在视口内。 2. **瀑布流布局** 瀑布流布局是一种常见的网页布局...
4. **修正内容**:在修正版本中,可能修复了一些常见问题,如浏览器兼容性问题、资源加载错误处理、性能优化等。这可能涉及到对源代码的修改,如调整检查元素是否在视口内的算法,或者优化滚动事件的绑定以减少不必...
3. **资源优先级管理**:通过判断哪些资源对用户体验最关键,优先加载这些内容,比如页面布局和主要功能,然后逐步加载非必需的图片或视频。 4. **骨架屏**:骨架屏是预加载的一种形式,它在内容实际加载前显示页面...
由于移动设备的网络环境、内存和处理器资源相对有限,不适宜一次性加载所有图片,尤其是对于长页面而言,用户往往只看到页面的一部分,无需立即加载所有图片。因此,图片懒加载(Lazy Loading)应运而生,它旨在提高...
这个解决方案能够帮助开发者在不牺牲用户体验的情况下,有效地管理网页中的大量图片资源,降低首次页面加载的时间。 该代码主要涉及以下知识点: 1. **jQuery选择器与事件绑定**:jQuery库提供了强大的DOM操作和...
X5内核支持更高效的资源加载和渲染,特别适合实现WebView的懒加载功能。 Android 8.0及更高版本的WebView进行了大量改进,性能已经得到了显著提升,对于大部分应用来说,无需额外引入X5内核也能达到较好的效果。...