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 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
jquery选择器使用详解
Apr 08 Javascript
javascript实现继承的简单实例
Jul 26 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
Javascript json object 与string 相互转换的简单实现
Sep 27 Javascript
react native实现往服务器上传网络图片的实例
Aug 07 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
Mar 26 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
vue实现购物车加减
May 30 Javascript
vue 中的动态传参和query传参操作
Nov 09 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
海贼王:最美的悬赏令!
2020/03/02 日漫
php强制下载类型的实现代码
2011/04/21 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
PHP xpath()函数讲解
2019/02/11 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Python print不能立即打印的解决方式
2020/02/19 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
《夜晚的实验》教学反思
2014/02/19 职场文书
要账委托书范本
2014/09/15 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python