BulkLoader提供简单的载入函数,不管要载入的是xml、swf还是声音文件,都只使用同一接口。功能强大,十分推荐。

用法,载入xml文件:

var bulkLoader:BulkLoader = new BulkLoader('main loading');
bulkLoader.add('my_xml_file.xml');
bulkLoader.start();

引用前面载入的资源:

var myXML:XML = BulkLoader.getLoader("main loading").getXML("my_xml_file.xml");

更全面的用法:

package {
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;

public class SimpleExampleMain extends MovieClip {
public var loader : BulkLoader;
public var v : Video;
public var counter : int = 0;

public function SimpleExampleMain() {
//构建BulkLoader的时候需要给它一个名称
loader = new BulkLoader("main-site");
//设置输出日志
loader.logLevel = BulkLoader.LOG_INFO;
//构建好了以后,通过add方法往队列里添加需要加载的对象
loader.add("photo.png");
//添加加载对象时候,也可以给它添加一个id,方便以后调用
loader.add("images.jpg", {id:"bg"});
//还可以通过priority属性调整加载对象的加载顺序,priority值越大,优先权越高,越早加载
loader.add("list.xml", {priority:20, id:"config-xml"});
//加载一个动画,加载动画的时候可以用pausedAtStart属性暂停播放动画
loader.add("mov.fla", {maxTries:6, id:"the-video", pausedAtStart:true});
//maxTries属性用于设定加载失败时的重试次数,注意,这里的“id”用了字符串命名
loader.add("song.mp3", {"id":"soundtrack", maxTries:1, priority:100});

//看了最新版本的文档,已经开始支持swf和json,一阵欣喜。

//添加一个COMPLETE事件,这个事件会在队列里的所有对象都加载完毕后触发
loader.addEventListener(BulkLoader.COMPLETE, onAllItemsLoaded);

//添加一个PROGRESS事件,这个事件会在队列加载时不断触发。通常可以用于监听加载进度。
loader.addEventListener(BulkLoader.PROGRESS, onAllItemsProgress);

//队列编辑完毕后用star方法开始加载队列
loader.start();
}
public function onAllItemsLoaded(evt : Event):void {
trace("every thing is loaded!");
//建立一个Video对象
var video : Video = new Video();
//从队列里提取刚才加载的视频流
var theNetStream : NetStream = loader.getNetStream("the-video");
addChild(video);
video.attachNetStream(theNetStream);
theNetStream.resume();
video.y = 300;
//提取图片

//可以直接通过url提取对象
var bitmapCats : Bitmap = loader.getBitmap("photo.png");
bitmapCats.width = 200;
bitmapCats.scaleY = bitmapCats.scaleX;
addChild(bitmapCats);

//当然,也可以通过id提取对象
var bitmapShoes : Bitmap = loader.getBitmap("bg");
bitmapShoes.width = 200;
bitmapShoes.scaleY = bitmapShoes.scaleX;
bitmapShoes.x = 220;
addChild(bitmapShoes);

//提取音频
var soundtrack : Sound = loader.getSound("soundtrack");
soundtrack.play();

//提取一个xml文档
var theXML : XML = loader.getXML("config-xml");
trace(theXML);
}
//通过BulkProgressEvent的loadingStatus方法可以显示加载过程中的所有信息!
public function onAllItemsProgress(evt : BulkProgressEvent):void {
trace(evt.loadingStatus());
}
}
}

这里特别提出一点,就是加入progess事件,当载入的对象太多,函数中的totalBytes并不能同步获取所有资源的Bytes,evt.loadingStatus()方法列出了所有的onProgess可以检测到的属性,通过N此检测,我确信这是一个BUG。loadedBytes是正常显示,而totalBytes会在loading接近尾声的时候才能够获取。我查看了code.google的文档,找到了一个方法,还没有去验证 loader.get("id").addEventListener(Event.COMPLETE,onBackgroundLoaded)获取众多资源中的特定支援,应用在Complete方法上,这样是否同样可以应用在PROGRESS恩?如果在获取每个单一资源的以后执行break,再把单一资源的totalBytes相加在一起,是否可以得出我们在总的onProgess方法里获取不到的totalBytes?

文章转自:http://amazonite.blog.sohu.com/131966709.html

转载于:https://www.cnblogs.com/Lewis/archive/2010/08/02/1790469.html

BulkLoader类使用相关推荐

  1. 自己搜集编写的Delphi 通用函数

    { ********************************************************************** } { Currency Common Functio ...

  2. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  3. MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段

    mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...

  4. IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...

    使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...

  5. IDEA自动生成类注解,IDEA作者信息自动生成,IDEA类信息自动生成

    在新建类文件的时候自动生成注解,诸如我们常见的那些 作者,创建时间,TODO 等等 将以下格式的代码放在Settings -> File and Code Templates -> Inc ...

  6. javabean实体类与实体类之间的快速转换

    一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...

  7. 利用dom4j将实体类转换为对应的xml报文

    利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...

  8. Idea groovy表生成实体类带注释

    Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...

  9. java带参数的方法笔记_具有Java参数的方法的类声明

    类声明可以包含在Java中具有参数的方法.演示此过程的程序如下: 示例class Message { public void messagePrint(String msg) { System.out ...

最新文章

  1. 端到端训练 联合训练_曲靖两家银行举行联合军事拓展训练 献礼祖国71周年华诞...
  2. UA MATH567 高维统计专题1 稀疏信号及其恢复1 L0-norm minimization
  3. 新安装和已安装nginx如何添加未编译安装模块/补丁
  4. java 线程“生产/消费”模型1
  5. 解决VMware在Windows 7上无法上网的问题
  6. 设计模式之策略模式学习
  7. AD14简明使用教程(同样试用于手工制板)
  8. Ubuntu 18.04.3 LTS - 安装 Spring Tool Suite 4
  9. opencv基于MultiTracker的多目标跟踪
  10. 如何通过软件实现自动阶梯计电梯费
  11. 整数:求数组Nums中只出现一次的数
  12. WZOI-272友谊
  13. 什么是SAAS平台?三分钟了解
  14. Sklearn-GBDT(GradientBoostingDecisonTree)梯度提升树
  15. 临时邮箱怎么用?邮箱客户端设置
  16. 股市java_Java获取股市交易日
  17. Andersen Global与Baptiste Co. Law Firm合作加强加勒比海平台
  18. oracle重新创建表空间,oracle 创建表空间,修改表空间,删除表空间
  19. C语言实现10只小猪称体重
  20. php如何实现添加到购物车_php购物车功能如何实现

热门文章

  1. luogu4462 异或序列
  2. chrome浏览器中解决embed标签 loop=true 背景音乐无法循环的问题。
  3. [PAT乙级]数字分类 (20)
  4. python学习(十七) 扩展python
  5. EntityFramework的安装
  6. eclipse的workset项目重复显示解决方案
  7. 微信小程序复制到剪切板及换行问题
  8. js 全屏 退出全屏
  9. java 图形绘制_Java Graphics 图形绘制
  10. 计算机网络协议包头赏析-TCP