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);) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |