关于cocos2d-x 与 cocos2d-html5 资源预加载的思考
移动端资源预加载,可以做到需要加载的时候,从本地磁盘加载到内存,当纹理不需要的时候,都是强制清理内存里的纹理占用:
cc.TextureCache.getInstance().removeAllTextures();
cc.TextureCache.getInstance().dumpCachedTextureInfo();//test 打印仍然在使用的纹理
cc.TextureCache.purgeSharedTextureCache();
cc.SpriteFrameCache.getInstance().removeSpriteFrames();
cc.SpriteFrameCache.purgeSharedSpriteFrameCache();
cc.ShaderCache.purgeSharedShaderCache();
ccs.ArmatureDataManager.purge();
之后在本来就不充裕的移动设备内存中腾出空间来加载下一个界面要用到的纹理,于是基本上一个视图,就会在resource.js或者rescource.cpp中有一个数组与这个视图对应,数组里存放此视图所需的图片路径,需要显示此视图时,先预加载数组里的纹理;
但是到了html5 pc web端,纹理是存储在服务器的,加载一个纹理可不像移动端那样从磁盘读到内存中那么简单,如果要做到和移动端一样的内存精简,用不到的就都清理,那么预加载时就需要再次从服务端加载图片了,要再次做一遍cc.LoaderScene在第一次游戏运行时做过的事情,或者再从本地缓存中拿图?不知道目前cocos有没有做到把加载好的图片存储到pc本次磁盘中,一般的网页图片和swf应该都是可以的,以后等真遇到了类似项目再研究了...
我想如果是小型的html5游戏直接在最开始吧所有的全部加载完就行了,不要做removeAllTextures()之类的事情,如果用html5来开发类似于flash大型页游,那么就必须要有预加载网络文件的或者从本次缓存中拿图的功能了。
关于cocos2d-x 与 cocos2d-html5 资源预加载的思考的更多相关文章
- HTML5的页面资源预加载技术(Link prefetch)加速页面加载
不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉.有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用 ...
- 使用HTML5的页面资源预加载(Link prefetch)功能加速你的页面加载速度
不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉.有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用 ...
- 页面资源预加载(Link prefetch)功能加速你的页面加载速度
有了浏览器缓存,为何还需要预加载? 用户可能是第一次访问网站,此时还无缓存 用户可能清空了缓存 缓存可能已经过期,资源将重新加载 用户访问的缓存文件可能不是最新的,需要重新加载 页面资源预加载/预读取 ...
- 资源预加载 Preload
当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载 是另一个性能 ...
- web资源预加载-生产环境实践
此文记录资源预加载在我们项目的实践,技术难度不算高,重在介绍一套技术方案的诞生与实施,其中都进行了哪些思考,依据什么来做决策,如何进行效果评估,等等.为读者在制定技术方案时提供一定启示. 背景 资源预 ...
- 资源预加载preload和资源预读取prefetch简明学习
前面的话 基于VUE的前端小站改造成SSR服务器端渲染后,HTML文档会自动使用preload和prefetch来预加载所需资源,本文将详细介绍preload和prefetch的使用 资源优先级 在介 ...
- DNS、链接网页、资源预加载处理
从网页性能的角度来看,DNS的解析时间是比较耗时的.因此如果能预先下载网页中用到的其它域的资源.可提前进行DNS解析: <link rel="dns-prefetch" hr ...
- preloadjs实现网页资源预加载
<!doctype html> <html lang="zh"> <head> <title>PreloadJS的基础使用</ ...
- 图片,音频资源预加载和文档dom加载
在项目中遇到一个问题,ajax请求音频资源,然后动态的插入到文档中,其中.原生的音频外观实在太丑了,而且每个浏览器的样式都不一样,采取了一个audio插件. 就遇到一个问题,请求后的直接调用插件的话, ...
随机推荐
- Installing a single-server IBM FileNet P8 Platform system with IBM Content Navigator
Product documentation Abstract You can install all of the IBM FileNet P8 Platform components on a si ...
- linux 设置windows共享
在linux下需要设置windows共享. 我们使用SMBA来实现. 1.查看是否安装smba. rpm -qa | grep samba 如果没有安装,则去 www.rpmfind.net 下载sm ...
- 解决ACTIVITI流程图设置字体不生效的问题
在ACTIVITI 5.15的版本中,有一个设置流程图的字体配置. 配置如下: <bean id="processEngineConfiguration" class=&qu ...
- ubuntu 14.04 上安装有道词典
Ubuntu 14.04用户在安装前要更新系统,即update&dist-upgrade. 下载地址:32/64bits http://codown.youdao.com/cidian/lin ...
- js用正则表达式控制价格输入
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- flash背景透明兼容ie火狐
<embed src="1234.swf" quality="high" type="application/x-shockwave-flash ...
- SelectedRows.CurrentRowSelected 和 DeleteItem
procedure TBMListEh.SetCurrentRowSelected(Value: Boolean); var Index: Integer; Current: TUniBookmark ...
- struts2 文件的上传下载 表单的重复提交 自定义拦截器
文件上传中表单的准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设 ...
- C++-理解构造函数、析构函数执行顺序
先初始化序列中的函数调用,如果基类构造函数为非引用传递,则引起参数的拷贝构造 再: 先类内的成员构造函数(拷贝/默认),再类的构造函数:先基类,再派生类: 本文主要说明对象创建时构造函数的执行顺序,对 ...
- Xlistview的values下的界面
<!-- 下拉刷新,上拉加载更多 --> <string name="xlistview_header_hint_normal">下拉刷新</s ...