我需要以渐进式JPEG格式显示图像(与顺序JPEG的渐进显示不同,详情请参见http://en.wikipedia.org/wiki/JPEG#JPEG_compression)。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);
}
}