2012-06-28 16 views
8

Necesito mostrar la imagen en formato JPEG progresivo (http://en.wikipedia.org/wiki/JPEG#JPEG_compression, que no debe confundirse con la visualización progresiva de JPEG secuencial). Flash admite la carga de JPEG progresivo, pero no tengo idea de cómo mostrarlo durante la carga. Breve google me da una carga progresiva de JPEG secuencial y nada más.Visualizar JPEG progresivo en Flash durante la carga

+0

¿Quiere decir lo que se le preguntó aquí? http://stackoverflow.com/questions/1814833/how-to-dynamically-load-a-progressive-jpeg-jpg-in-actionscrip-3-using-flash-and –

Respuesta

4

sería más o menos así:

// 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); 
    } 
} 

en cuenta que el proceso loadBytes es asíncrona. Además, cuando lo intentas con un bytearray indesplazable (generalmente las primeras llamadas a onProgress, cuando no hay suficientes datos de imagen para procesar) falla silenciosamente, por lo que debes garantizar de alguna manera que tienes suficientes datos ... en este caso utilicé if (bytes.length> 4096);)

+0

Su solución carga la imagen pero no puede determinar su dimensiones reales – Pehat

+0

Debería poder obtener las dimensiones de la imagen en el primer evento completo de loader.contentLoaderInfo;) – Cay

Cuestiones relacionadas