Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [AS3]Loader.loadBytes e BitmapData

    Poichè ho l'esigenza di caricare da un file zip delle immagini, stavo usando la classe Loader per caricaricare tramite un ByteArray l'immagine.
    L'immagine la carico e la vedo senza problemi, ma ho un problema a passare l'immagine ad un oggetto BitmapData.
    In pratica, se la passo subito dopo il loading:

    codice:
    var rawLoader:Loader = new Loader ( ) ;
    rawLoader.loadBytes ( bytedata ) ;
    
    var lbmp:BitmapData = new BitmapData ( ... ) ;
    lbmp.draw ( rawLoader, ... ) ;
    addChild ( lbmp );
    Così nella bitmap non viene disegnato nulla. Ho pensato che forse bisognava dargli il tempo di caricare, e quindi assegnargli un listener. In effetti dovrebbe essere un po assurdo perchè l'immagine è gia caricata in memoria tramite ByteArray e Loader dovrebbe solo creare l'immagine ma...

    Se assegno un listener Event.COMPLETE al Loader e faccio creare da li la bitmap, funziona senza problemi.

    codice:
    var rawLoader:Loader = new Loader ( ) ;
    rawLoader.loadBytes ( bytedata ) ;
    
    var lbmp:BitmapData = new BitmapData ( ... ) ;
    lbmp.draw ( rawLoader, ... ) ;
    addChild ( lbmp );
    
    var infoloader:LoaderInfo = rawLoader.contentLoaderInfo;
    infoloader.addEventListener(Event.COMPLETE,testload);
    
    function testload ( e:Event )
    {
        var lbmp:BitmapData = new BitmapData ( ... ) ;
        lbmp.draw ( rawLoader, ... ) ;
        addChild ( lbmp );
    }
    Cosi funziona benissimo.
    Ora quello che mi chiedo è: C'è un modo per bypassare l'adozione dell'event listener ?
    Il problema è che dovenda questa classe restituire a sua volta un oggetto, dovrei creare dei listener a catena fino alla root e non mi piacerebbe molto.
    Qualche idea ?
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    non è possibile, anche se l'immagine è già caricata in memoria, c'è uno stacco tra l'avvenuto caricamento dell'immagine e la possibilità di utilizzarla all'interno del codice e l'unico modo per trovare il momento preciso è quello di usare un listener
    non ho capito bene il discorso dei listener a catena, cioè questi restano nascosti, al massimo tu puoi dare un evento personalizzato nell'ultimo listener, invece di passarli tutti, e nella classe richiameresti solo quest'ultimo per le necessità di manipolazione successive che dovrai fare in root

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.