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实现代码
Dec 03 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
May 22 Javascript
js剪切板应用clipboardData实例解析
May 29 Javascript
SWFUpload多文件上传及文件个数限制的方法
May 31 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
vue实现通讯录功能
Jul 14 Javascript
微信小程序下拉框组件使用方法详解
Dec 28 Javascript
JS highcharts动态柱状图原理及实现
Oct 16 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文件的三种方法
2013/06/18 PHP
php中的ini配置原理详解
2014/10/14 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python3生成手写体数字方法
2018/01/30 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
django 环境变量配置过程详解
2019/08/06 Python
Python列表操作方法详解
2020/02/09 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
普通院校学生的自荐信
2013/11/27 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
综艺节目策划方案
2014/06/13 职场文书
护理学专业求职信
2014/06/29 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
环保建议书作文400字
2015/09/14 职场文书
python状态机transitions库详解
2021/06/02 Python
JavaScript 原型与原型链详情
2021/11/02 Javascript