Domanda

Noto un comportamento strano con la classe flash.media.Sound in Flex 3.

var sound:Sound = new Sound();
try{
sound.load(new URLRequest("directory/file.mp3"))
} catch(e:IOError){
 ...
}

Tuttavia questo non aiuta.Ricevo un errore di streaming e in realtà sembra essere nel costruttore Sound.

Errore n. 2044:IOErrorEvent non gestito:.testo=Errore n. 2032:Errore di flusso.A...]

Ho visto un esempio nei documenti Flex in cui aggiungono un ascoltatore di eventi per IOErrorEvent, SICURAMENTE non devo farlo e posso semplicemente usare try-catch?Posso impostare un listener di eventi nulli?

È stato utile?

Soluzione

IOError = il file di destinazione non può essere trovato (o per qualche altro motivo non può essere letto).Controlla il percorso del tuo file.

Modificare:Ho appena realizzato che questo potrebbe non essere il tuo problema, stai solo cercando di individuare l'errore IO?Se è così, puoi fare questo:

var sound:Sound = new Sound();
sound.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
sound.load(new URLRequest("directory/file.mp3"));

function ioErrorHandler(event:IOErrorEvent):void {
    trace("IO error occurred");
}

Altri suggerimenti

Dovrai aggiungere un ascoltatore poiché URLRequest non è istantaneo.Sarà molto velocemente se stai caricando da disco, ma avrai comunque bisogno del listener di eventi.C'è un buon esempio di come impostarlo (Completo con la gestione IOErrorEvent) nel file livedocs.

try...catch si applica solo agli errori che vengono generati quando viene chiamata quella funzione.Qualsiasi tipo di metodo che implichi il caricamento di materiale dalla rete, dal disco, ecc. Sarà asincrono, ovvero non verrà eseguito correttamente quando lo chiami, ma invece accadrà poco dopo averlo chiamato.In tal caso hai bisogno di addEventListener per rilevare eventuali errori o eventi o per sapere quando è terminato il caricamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top