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获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
JS Replace 全部替换字符的用法小结
Dec 24 Javascript
jQuery插件扩展操作入门示例
Jan 16 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
iview中Select 选择器多选校验方法
Mar 15 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
Puppet的一些技巧
Sep 17 Javascript
一文了解vue-router之hash模式和history模式
May 31 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
JS实现transform实现扇子效果
Jan 17 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学习之PHP变量
2006/10/09 PHP
php 动态执行带有参数的类方法
2009/04/10 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php文件上传简单实现方法
2015/01/24 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python常用知识梳理(必看篇)
2017/03/23 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
上班离岗检讨书
2014/01/27 职场文书
上班上网检讨书
2014/01/29 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
小学教师师德承诺书
2014/05/23 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
2014年财务科工作总结
2014/11/11 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
高中班长竞选稿
2015/11/20 职场文书