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 相关文章推荐
Javascript String.replace的妙用
Sep 08 Javascript
javascript针对DOM的应用分析(四)
Apr 15 Javascript
jquery.cookie用法详细解析
Dec 18 Javascript
javascript操作excel生成报表全攻略
May 04 Javascript
jquery阻止后续事件只执行第一个事件
Jul 24 Javascript
JS清除选择内容的方法
Jan 29 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
Aug 05 Javascript
浅谈JavaScript for循环 闭包
Jun 22 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
Nov 27 Javascript
用vuex写了一个购物车H5页面的示例代码
Dec 04 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 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/11/25 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
深入理解Python中各种方法的运作原理
2015/06/15 Python
python3处理含有中文的url方法
2018/05/10 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
投标保密承诺书
2014/05/19 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
五年级小学生评语
2014/12/26 职场文书
环卫工人慰问信
2015/02/15 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
MySQL深分页问题解决思路
2022/12/24 MySQL