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 相关文章推荐
破解Session cookie的方法
Jul 28 Javascript
event.currentTarget与event.target的区别介绍
Dec 31 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
jquery实现提示语淡入效果
May 05 jQuery
vue集成百度UEditor富文本编辑器使用教程
Sep 21 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
Dec 10 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
基于JavaScript实现猜数字游戏代码实例
Jul 30 Javascript
vue v-model的用法解析
Oct 19 Javascript
keep-alive保持组件状态的方法
Dec 02 Javascript
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
使用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常用数学函数汇总
2014/11/21 PHP
Yii使用技巧大汇总
2015/12/29 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
javascript arguments使用示例
2014/12/16 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
nodejs基础知识
2017/02/03 NodeJs
Javascript实现信息滚动效果
2017/05/18 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
Oracle性能调优原则
2012/05/03 面试题
销售自我评价
2013/10/22 职场文书
男女朋友协议书
2014/04/23 职场文书
教室标语大全
2014/06/21 职场文书
中秋晚会活动方案
2014/08/31 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
数学教师个人工作总结
2015/02/06 职场文书
教师年度考核个人总结
2015/02/12 职场文书
技术员个人工作总结
2015/03/03 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
python如何在word中存储本地图片
2021/04/07 Python