zoukankan      html  css  js  c++  java
  • BulkLoader类使用

    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

  • 相关阅读:
    Python 之解析配置文件模块ConfigParser
    SonarQube代码质量管理平台
    SVN代码统计工具StatSVN
    python 3接口测试
    python+selenium使用chrome时,报错ignore certificate errors
    python3发送邮件(有附件)
    日记
    杂记 包含 serialize().ajaxStart() .ajaxStop()以及其他
    还是要说一下XML。全当日记
    桑心!XML
  • 原文地址:https://www.cnblogs.com/Lewis/p/1790469.html
Copyright © 2011-2022 走看看