加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

actionscript-3 – 在加载过程中在Flash中显示渐进式JPEG

发布时间:2020-12-15 07:32:39 所属栏目:百科 来源:网络整理
导读:我需要以渐进式JPEG格式显示图像( http://en.wikipedia.org/wiki/JPEG#JPEG_compression,不要与顺序JPEG的逐行显示混淆). Flash支持加载渐进式JPEG,但我不知道如何在加载过程中显示它.简短的谷歌搜索让我逐步加载顺序JPEG,没有别的. 解决方法 它会是这样的:
我需要以渐进式JPEG格式显示图像( http://en.wikipedia.org/wiki/JPEG#JPEG_compression,不要与顺序JPEG的逐行显示混淆). Flash支持加载渐进式JPEG,但我不知道如何在加载过程中显示它.简短的谷歌搜索让我逐步加载顺序JPEG,没有别的.

解决方法

它会是这样的:

// the loader containing the image
var loading:Boolean = false;
var loader:Loader = new Loader();
addChild(loader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function() {
    loading = false;
    trace(loader.width,loader.height);
});

var bytes:ByteArray = new ByteArray();

var stream:URLStream = new URLStream();
stream.addEventListener(ProgressEvent.PROGRESS,onProgress);
stream.addEventListener(Event.COMPLETE,onProgress);
stream.load(new URLRequest(imageURL));

function onProgress(e:Event):void {
    stream.readBytes(bytes,bytes.length);
    if((bytes.length > 4096 && !loading) || e.type == Event.COMPLETE) {
        loading = true;
        loader.loadBytes(bytes);
    }
}

请注意,loadBytes进程是异步的.此外,当你尝试使用不可解析的bytearray(通常第一次调用onProgress,当没有足够的图像数据要处理)时,它会无声地失败,所以你需要以某种方式保证你有足够的数据…在这种情况下我使用if(bytes.length> 4096);)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读