Pregunta

Estoy viendo un comportamiento extraño con el flash.los medios de comunicación.La clase Sound en Flex 3.

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

Sin embargo, esto no está ayudando.Estoy recibiendo un error de transmisión, y se ve realmente a ser en el Sonido constructor.

Error #2044:No Controlada IOErrorEvent:.texto=Error #2032:Error De Transmisión.en...]

Vi un ejemplo en el Flex docs, donde se añade un detector de eventos para IOErrorEvent, SEGURAMENTE no tengo que hacer esto, y simplemente puede utilizar try-catch?Puedo establecer un null detector de eventos?

¿Fue útil?

Solución

IOError = archivo de destino no se encuentra (o por alguna otra razón no se puede leer).Revise su ruta de acceso del archivo.

Editar:Me di cuenta de que esto no puede ser su problema, usted está tratando de recuperar el IO de error?Si es así, usted puede hacer esto:

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

Otros consejos

Usted tendrá que añadir un oyente desde el URLRequest no es instantánea.Será muy rápido si se carga desde el disco, pero todavía tendrá el Evento-oyente.Hay un buen ejemplo de cómo esta configurado (con IOErrorEvent manejo) en la livedocs.

try...catch sólo se aplica para los errores que se producen cuando se llama a la función.Cualquier tipo de método que consiste en cargar cosas de la red, disco, etc será asincrónica, que es no ejecutar a la derecha cuando usted llame, pero en lugar de eso sucede poco después de que le llamen.En ese caso sí es necesario que el addEventListener con el fin de detectar los errores o eventos, o para saber cuando ha terminado de cargar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top