Preload基础使用方法详解


Posted in Javascript onFebruary 03, 2020

PreloadJS是一个用来管理和协调相关资源加载的类库,它可以方便的帮助你预先加载相关资源,例如

图片,文件,音频,数据,其他

它使用了XHR2来提供实时的加载进度信息,如果不支持则使用标签式的简化进度来实现进度展示。

支持多队列,多连接,暂停队列等等功能

在PreloadJS中,LoadQueue是主要用来预加载内容的API。LoadQueue是一个加载管理器,可以预先加载一个文件或者一个文件队列。

var queue = new createjs.LoadQueue(true);

以上代码中,传递一个false参数则强制使用标签式的加载。LoadQueue包含了以下几个可以订阅的事件:

complete: 当队列完成全部加载后触发

error: 当队列遇到错误时触发

progress: 整个队列变化时展示的进度

fileload: 一个单独文件加载完毕

fileprogress: 一个单独文件变化的进度,请注意只有文件使用XHR加载才会触发,其它只会显示0或者100%

可以通过调用loadfile("文件路径")加载一个文件或者调用loadMnifest()来加载多个文件。

LoadQueue支持相关文件类型如下:

BINARY: XHR调用的二进制文件

CSS: CSS文件

IMAGE: 一般图片文件格式

JAVASCRIPT: JavaScript文件

JSON: JSON数据

JSONP: 跨域JSON文件

MANIFEST: JSON格式的文件列表

SOUND: 音频文件

SVG: SVG文件

TEXT: 文本文件 - 仅支持XHR

XML: XML数据

代码示例:

var canvas = document.getElementById("myCanvas");
var stage = new createjs.Stage(canvas);
var manifest;
var preload;
var progressText = new createjs.Text("", "20px Arial", "#dd4814");
progressText.x = 125 - progressText.getMeasuredWidth() / 2;
progressText.y = 20;
stage.addChild(progressText);
stage.update();
//定义相关JSON格式文件列表
function setupManifest() {
  manifest = [{
    src: "http://cdn.gbtags.com/EaselJS/0.7.1/easeljs.min.js", 
    id: "easeljs"
  }, {
    src: "http://www.gbtags.com/gb/networks/uploadimgthumb/4d8f3f13-89c0-455c-95f3-ba5120c2f123.jpg",
    id: "logo"
  }, {
    src: "http://www.gbtags.com/tutorials/html5-tutorial/html5-demos/assets/song.ogg",
    id: "audiofile"
  }
 
  ];
  for(var i=1;i<=10;i++)
    manifest.push({src:"http://www.gbtags.com/gb/laitu/200x200"})
}
//开始预加载
function startPreload() {
  preload = new createjs.LoadQueue(true);
  //注意加载音频文件需要调用如下代码行
  preload.installPlugin(createjs.Sound);     
  preload.on("fileload", handleFileLoad);
  preload.on("progress", handleFileProgress);
  preload.on("complete", loadComplete);
  preload.on("error", loadError);
  preload.loadManifest(manifest);
 
}
//处理单个文件加载
function handleFileLoad(event) {
  console.log("文件类型: " + event.item.type);
  if(event.item.id == "logo"){
    console.log("logo图片已成功加载");
  }
}
 
//处理加载错误:大家可以修改成错误的文件地址,可在控制台看到此方法调用
function loadError(evt) {
  console.log("加载出错!",evt.text);
}
 
//已加载完毕进度 
function handleFileProgress(event) {
  progressText.text = "已加载 " + (preload.progress*100|0) + " %";
  stage.update();
}
//全度资源加载完毕
function loadComplete(event) {
  console.log("已加载完毕全部资源");
}
setupManifest();
startPreload();

更多关于PreloadJS使用方法请点击下面的相关链接

Javascript 相关文章推荐
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
Jan 08 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
JavaScript实现简单的拖动效果
Jul 02 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
Dec 08 Javascript
浅谈Express异步进化史
Sep 09 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
vue2和vue3的v-if与v-for优先级对比学习
Oct 10 Javascript
jquery简易手风琴插件的封装
Oct 13 jQuery
Javascript Symbol原理及使用方法解析
Oct 22 Javascript
使用PreloadJS加载图片资源的基础方法详解
Feb 03 #Javascript
使用preload预加载页面资源时注意事项
Feb 03 #Javascript
jQuery实现小火箭返回顶部特效
Feb 03 #jQuery
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
Feb 03 #Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 #Javascript
微信小程序实现同时上传多张图片
Feb 03 #Javascript
解决小程序无法触发SESSION问题
Feb 03 #Javascript
You might like
自定义PHP分页函数
2006/10/09 PHP
PHP 身份验证方面的函数
2009/10/11 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
js实现简单计算器
2015/11/22 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
解决DataFrame排序sort的问题
2018/06/07 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
Python 多维List创建的问题小结
2019/01/18 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
tensorflow 查看梯度方式
2020/02/04 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
担保书格式及范文
2014/04/01 职场文书
政府信息公开实施方案
2014/05/09 职场文书
旷工辞退通知书
2015/04/17 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
董事长新年致辞
2015/07/29 职场文书
企业法人任命书
2015/09/21 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
用Python可视化新冠疫情数据
2022/01/18 Python