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 json2 使用方法
Mar 16 Javascript
JS读取cookies信息(记录用户名)
Jan 10 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
详解AngularJs中$resource和restfu服务端数据交互
Sep 21 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
react实现换肤功能的示例代码
Aug 14 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
Vue指令之 v-cloak、v-text、v-html实例详解
Aug 08 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
ES2020 已定稿,真实场景案例分析
May 25 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
requireJS模块化实现返回顶部功能的方法详解
2017/10/16 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
Python类的基础入门知识
2008/11/24 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
Python绘制热力图示例
2019/09/27 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
校园公益广告语
2014/03/13 职场文书
高中生学习计划书
2014/09/15 职场文书
宾馆安全管理制度
2015/08/06 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android