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 相关文章推荐
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
javascript定时变换图片实例代码
Mar 17 Javascript
jQuery中$.click()无效问题分析
Jan 29 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
Nov 10 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
Jan 04 Javascript
jQuery实现动态添加tr到table的方法
Dec 26 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 Javascript
Javascript三种字符串连接方式及性能比较
May 28 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/04/09 欧美动漫
php中如何防止表单的重复提交
2013/08/02 PHP
php与java通过socket通信的实现代码
2013/10/21 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
详解vuex的简单使用
2018/03/12 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python实现的rsa加密算法详解
2018/01/24 Python
python的依赖管理的实现
2019/05/14 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
房屋委托书范本
2014/04/04 职场文书
小学生评语集锦
2014/04/18 职场文书
五一促销活动总结
2014/07/01 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
见习报告的格式
2014/11/04 职场文书
成绩报告单家长评语
2014/12/30 职场文书
教师节表彰会主持词
2015/07/06 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android