功能装载机?

时间:2009-12-23 08:13:15

标签: flex actionscript-3

我正在尝试监控我构建的图像滚动条的进度,并且所有图像(拇指)分别加载。找出正在加载的图像总进度的最佳方法是什么?

我认为使用通用加载器并将其应用于诸如

之类的函数会很酷
myScroller.loadImages();

但我没有看到任何这方面的例子。 我确实遇到过this帖子:

但我不确定它是否真的解决了我反对的问题。

感谢您的任何想法或专业知识。 JML

3 个答案:

答案 0 :(得分:1)

问题是如果您开始加载图像只知道图像的大小,那么我猜有三个选项:

1)开始加载每个图像并在获得大小后立即停止。缺点是你要求加倍。

2)当您开始加载第一张图像时,将其大小与图像数量相乘。缺点是这是不可取的。

3)如果您在应用程序之外的某个位置定义图像,例如在xml中,您可以添加某种filesize属性,当您编译应用程序时,通过一些自定义ant任务将大小注入xml。

我赞成选项3。

答案 1 :(得分:1)

根据应用的规模,您可以查看bulkloader库。它不是完全轻量级,我认为大约16kb,但是如果你加载了很多图像,那么这不应该是太大的影响。请查看网站以获取详细说明,但您执行以下操作:

private var $loader : Bulkloader = new BulkLoader( "ExampleLoader" );

private function startLoad() : void
{
    $loader.add( "image1.jpg", { id : "image1", type : "image" });
    $loader.add( "image2.jpg", { id : "image2", type : "image" });
    $loader.add( "image3.jpg", { id : "image3", type : "image" });

    $loader.addEventListener( BulkLoaderEvent.COMPLETE, loadComplete )
    $loader.start();
}

private function loadComplete( e : BulkLoader ) : void
{
    var thumbNail : ThumbNail = new ThumbNail( $loader.getBitmap( "image1" ) );
}

不确定这是否完全正确,但你应该明白这一点。

答案 2 :(得分:1)

嘿那里,我会倾向于第三。 maxmc提到的选项。我有一个XML信息。我要加载的所有图像(例如名称,大小等);这样我就知道将要加载多少图像,如果我想根据剩余图像的数量来衡量整体进度,还要根据我想要监控整体进度来加载的总字节数就剩余的加载字节而言。

这个XML当然可以按需创建;你只需要创建一个脚本,从flash中获取要从中加载图像的文件夹或位置,然后读取它,获取有关图像的必要信息并返回以XML结果闪存,以便继续负载图像处理。