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 自定义函数缺省值的设置方法
May 05 Javascript
js兼容的placeholder属性详解
Aug 18 Javascript
jQuery EasyUI datagrid实现本地分页的方法
Feb 13 Javascript
浅析jQuery 3.0中的Data
Jun 14 Javascript
把普通对象转换成json格式的对象的简单实例
Jul 04 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
Aug 23 Javascript
微信小程序实现折叠展开效果
Jul 19 Javascript
使用D3.js+Vue实现一个简单的柱形图
Aug 05 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
JavaScript:ES2019 的新特性(译)
Aug 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使HTML标签自动补全闭合函数代码
2012/10/04 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
PHP pear安装配置教程
2016/05/14 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
Js中sort()方法的用法
2006/11/04 Javascript
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python中使用dom模块生成XML文件示例
2015/04/05 Python
简单谈谈Python中的闭包
2016/11/30 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
python分布式环境下的限流器的示例
2017/10/26 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
市场安全管理制度
2014/01/26 职场文书
英文推荐信格式范文
2014/05/09 职场文书
大学新闻系求职信
2014/06/03 职场文书