devo visualizzare l'immagine in formato JPEG progressivo (http://en.wikipedia.org/wiki/JPEG#JPEG_compression, da non confondere con visualizzazione progressiva sequenziale JPEG). Flash supporta il caricamento del JPEG progressivo, ma non ho idea di come visualizzarlo durante il caricamento. Breve googling mi dà il caricamento progressivo di JPEG sequenziale e nient'altro.visualizzazione progressiva JPEG in Flash durante il caricamento
8
A
risposta
4
sarebbe andare qualcosa di simile:
// 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);
}
}
notare che il processo loadBytes è asincrono. Inoltre, quando lo provi con un bytear non analizzabile (di solito le prime chiamate a onProgress, quando non ci sono abbastanza dati di immagine da elaborare) falliscono silenziosamente, quindi devi in qualche modo garantire di avere abbastanza dati ... in questo caso ho usato se (bytes.length> 4096);)
Vuoi dire come chiesto qui? http://stackoverflow.com/questions/1814833/how-to-dynamically-load-a-progressive-jpeg-jpg-in-actionscrip-3-using-flash-and –