`
qq123zhz
  • 浏览: 536152 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

BulkLoader 多文件加载库(转)

    博客分类:
  • Flex
阅读更多

在BulkLoader 的 add方法中,有下面这些参数:
url:* — 加载对象(String 或者 URLRequest 类型)
props:Object (default = null) — 一些加载对象的属性,有下面这些
preventCache:Boolean — 是否防止缓存
id:String — 添加加载对象时候,也可以给它添加一个id,方便以后调用
priority:int — 还可以通过priority属性调整加载对象的加载顺序,priority值越大,优先权越高,越早加载
maxTries:int — maxTries属性用于设定加载失败时的重试次数
weight:int — 每个文件的大小提前告诉BulkLoader(当你想更精确的得到加载进度的时候,这是一个好的办法)
headers:Array — URLRequest 的头信息,当你传入的url是一个String的时候,BulkLoader也会把这些信息添加到URLRequest里面
context:* — LoaderContext 或者 SoundLoaderContext,加载到ApplicationDomain程序域的时候常用的属性
pausedAtStart:Boolean — 如果是一个nestream 对象,控制对象是否暂停。

BulkLoader提供PROGRESS事件和COMPLETE事件,让我们监视加载状态,用法如下

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

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

//一切准备好后,只要调用start方法就可以开始加载我们添加的素材序列了。
loader.start();

好了,看完上面的大家应该对BulkLoader有了一定了解了,至于一些用法,可以看BulkLoader的文档,或者搜索一下,有很多教程,这里我要说的是我们会遇到的一些问题。
用 BulkLoader实例的add()方法可以很方便地将素材地址加入加载列表
但是当素材太多的时候,加载进度会不准确(progess事件中的totalBytes并不能同步获取所有资源的Bytes)
最精确解决的办法是将 每个文件的大小提前告诉BulkLoader,就是在add里面加入weight值。
但是,这显然不是一个最省事的解决方法。
其实文档里面有一些属性可以给我们使用,通过BulkProgressEvent的loadingStatus方法可以显示加载过程中的所有信息!
大家可以在函数中trace() loadingStatus方法看看,就像下面:

public function onAllItemsProgress(e: BulkProgressEvent):void {
     trace(e.loadingStatus());
}

你会发现 BulkProgressEvent 会有一个 weightPercent属性,通过这个值,差不多可以解决我们的问题了,如果发现加载进度还是有很大误差的话,大家再看看loadingStatus 里面的其他属性,通过自己的算法来解决,不然就只能在 add 的时候,把文件的大小提前告诉 BulkLoader了。

剩下一个会经常需要解决的问题就是程序域的问题了,也就是加载的时候ApplicationDomain的问题,大家都知道 在用 Loader 加载文件的时候,可以在通过LoaderContext开指定加载的域,如下(例子是加载到当前域):

var context:LoaderContext = new LoaderContext();
context.applicationDomain =   new ApplicationDomain(ApplicationDomain.currentDomain);
loader.load(new URLRequest("text.swf"),context);

在BulkLoader里面我们同样可以进行指定,方法也是差不多的。

var loader : BulkLoader = new BulkLoader("config");
loader.addEventListener(BulkLoader.PROGRESS, loadProgress);
loader.addEventListener(BulkLoader.COMPLETE, loadInit);
var context : LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain);
loader.add("EsCard.swf", {id:"main", context: context});
loader.start();

ok,这样就大功告成了

分享到:
评论

相关推荐

    BulkLoader文件加载类库

    BulkLoader文件加载类库是一个高效且实用的工具,主要用于大批量数据的导入和导出操作。在IT领域,尤其是在数据库管理和大数据处理中,快速、批量地处理数据是至关重要的。BulkLoader类库就是为了满足这样的需求而...

    flash actionscript3 as3 BulkLoader多资源加载队列的用法.ziploading加载队列bulk_loader

    这通常通过将 BulkLoader_master 或类似包含库文件的RAR解压并引入到你的Flash项目中来实现。 2. **初始化BulkLoader**:在主程序中,创建一个BulkLoader实例,并配置加载配置。例如: ```actionscript var ...

    bulkloader

    BulkLoader的核心功能在于其异步加载机制,它可以同时加载多个文件,而不是逐一进行,这样大大减少了用户等待的时间。通过队列管理,BulkLoader能够按需加载资源,避免一次性加载过多内容导致的内存压力。此外,它还...

    BulkLoader

    BulkLoader 是一个专门用于批量加载数据的工具,尤其在处理大量外部文件下载场景时非常有用。这个工具由非华人开发者编写,旨在提供一种高效、可监控的文件下载解决方案。BulkLoader 的核心特性包括: 1. **多文件...

    BulkLoader:ActionScript的批量加载库

    BulkLoader是用Actionscript 3(AS3)编写的最小库,旨在使加载和管理复杂的加载需求更加轻松快捷。 BulkLoader采用了一种更加动态,更少架构的方法。 很少导入,并且大量使用了AS3的动态功能,BulkLoader具有一种...

    bulkloader下载类

    "bulkloader下载类"是ActionScript 3(AS3)中的一种工具,它优化了大量文件的下载过程,尤其适用于需要一次性加载多个资源的应用场景。AS3是Adobe Flash平台的主要编程语言,广泛用于创建交互式内容、游戏和富...

    关于BulkLoader总字节显示的问题

    在IT行业中,BulkLoader通常指的是批量数据加载工具,它用于高效地将大量数据导入到数据库或其他数据存储系统中。在本问题中,标题提到的“总字节显示的问题”可能是指在使用BulkLoader进行数据导入时,工具显示的总...

    flash 图片依次加载

    此外,为了提高性能,可以考虑使用`LoaderMax`库或`BulkLoader`类,它们提供了更高级的批量加载和队列管理功能。 总的来说,"flash 图片依次加载"是一个基础但实用的技巧,它涉及到ActionScript的基本用法,如事件...

    flash actionscript3 纯AS3代码_资源加载进度条.rar

    为了提高用户体验,可以使用`loadQueue`类或`BulkLoader`库来批量加载资源,这样可以更有效地管理多个加载任务,避免阻塞UI线程。 7. **安全与错误处理** 加载资源时,需要考虑安全策略,如跨域加载和本地文件...

    datastax-bulkloader-dse-example:此演示创建 sstable 文件并通过 jmx 将它们加载到 dse 集群

    DSE 4.5 批量加载程序示例此演示创建 sstable 文件并通过 jmx 将它们加载到 dse 集群。添加 dse-4.5.0 jar 在开始之前,您需要将 dse jar 添加到本地 Maven 存储库。 为此,请执行DSE_INSTALL_DIR/lib/目录。 在那里...

    as3批量下载组件

    AS3批量下载组件,如BulkLoader,是ActionScript 3(AS3)开发中的一个工具,主要用于优化和加速网络资源的加载,特别是当需要下载大量图片、音频或视频文件时。这个组件允许开发者一次性处理多个文件,提高了用户...

    图片Flash显示代码

    可以使用加载队列技术,如AS3的`BulkLoader`库,一次性加载多个资源,避免阻塞用户界面。 虽然现在HTML5提供了更好的原生支持来处理图片和动画,如`<img>`标签、Canvas和SVG,但了解Flash中的图片处理仍有其历史...

    ocp12c-062 362q.pdf

    1. 自动化作业执行:Oracle 12c引入了自动化的作业调度功能,例如文件监视器(file watcher)和批量加载监视器(bulkloader watcher)。当特定文件到达本地文件系统时,可以创建作业来自动执行。这有助于提高数据库操作...

    MySqlBulkLoaderDemo-master yunyun123.zip

    这种方式比单条插入快得多,因为它减少了网络通信和数据库操作的次数。 2. **自定义格式**:`MySqlBulkLoader`支持多种数据格式,如CSV、TSV等,可以灵活适应不同的数据源。 3. **字段映射**:你可以指定文件中的...

    cassandra-bulkload-for-shipdata:cassandra-bulkload-for-shipdata

    批量加载首先,使用schema.cql文件创建架构: $ cqlsh -f schema.cql然后,使用sstableloader将sstableloader加载到 Cassandra: $ sstableloader -d <ip> data/test_bulkloader/target_history(假设您的$PATH有...

    TUXEDO JOLT的配置与编程简介

    BulkLoader(也称为`jbld`)是一个Java程序,用于将服务定义文件加载到Jolt Repository Database中。在使用`jbld`之前,需要确保环境变量`CLASSPATH`包含了JOLT相关的类库路径(例如`jolt.jar`和`joltadmin.jar`)...

    app-bulkloader-example:未完成

    该代码分为多个项目: “ db”:数据库项目,包含模式,存储过程和其他配置,这些项目被编译到目录中并在VoltDB数据库中运行。 “客户端”:生成数据并将调用提交到数据库的Java客户端。 有关运行这些应用程序的...

    amor:临时Maven对象存储库-此处使用七巧板素材完成的简约工件服务

    amor-临时Maven对象存储库简约神器服务这是与七巧板一起抛出的Maven对象临时存储库。 设置系统: 建立项目gradle clean build 启动本地开发应用服务器 dev_appserver -p 12380 build\war汇入资料bulkloader.py --...

    spark-cassandra-bulkloader:使用 spark 将数据上传到 cassandra 的测试应用程序

    卡桑德拉火花 使用 spark 将数据上传到 cassandra 的测试应用程序,例如使用或 。 此示例中的代码取自 Cassandra 2.0.11,但具有对该项目中输出格式和记录编写器副本的。 笔记 示例数据和 schema.cql 位于 src/main/...

    appfy.recipe.gae:App Engine 开发的构建方法

    appfy.recipe.gae:工具: 在 buildout 目录中安装一个 python 可执行文件和几个 SDK 脚本:appcfg、bulkload_client、bulkloader、dev_appserver 和 remote_api_shell。 它还允许设置默认值来启动 dev_appserver。 ...

Global site tag (gtag.js) - Google Analytics