Documentación de Flash CS3 |
|||
| Aprendizaje de ActionScript 2.0 en Adobe Flash > Gestión de eventos > Utilización de detectores de eventos con componentes | |||
Al utilizar componentes, la sintaxis de detectores de eventos cambia ligeramente. Los componentes generan eventos, que se deben detectar específicamente utilizando un objeto detector o una función personalizada.
En el siguiente ejemplo se muestra cómo puede utilizar detectores de eventos para controlar el progreso de la descarga de una imagen cargada dinámicamente.
System.security.allowDomain("http://www.helpexamples.com");
var loaderListener:Object = new Object();
loaderListener.progress = function(evt_obj:Object):Void {
trace(evt_obj.type); // progress
trace("\t" + evt_obj.target.bytesLoaded + " of " + evt_obj.target.bytesTotal + " bytes loaded");
}
loaderListener.complete = function(evt_obj:Object):Void {
trace(evt_obj.type); // complete
}
my_ldr.addEventListener("progress", loaderListener);
my_ldr.addEventListener("complete", loaderListener);
my_ldr.load("http://www.helpexamples.com/flash/images/image1.jpg");
Este código ActionScript define un objeto detector denominado loaderListener que detecta dos eventos: progress y complete. Al distribuirse cada uno de estos eventos, se ejecuta su código y se muestra texto de depuración en el panel Salida (si prueba el archivo SWF en la herramienta de edición).
A continuación, deberá indicar a la instancia my_ldr que detecte cada uno de los eventos especificados (progress y complete) y especificar el objeto detector o la función que debe ejecutarse al distribuirse el evento. Finalmente, se llamará al método Loader.load(), que desencadena el inicio de la descarga de la imagen.
La imagen se descargará en la instancia Loader del escenario y se mostrarán varios mensajes en el panel Salida. Dependiendo del tamaño de la imagen que descargue y de si se le ha asignado una caché en el sistema local del usuario, el evento progress podría distribuirse varias veces, mientras que el evento complete sólo se distribuirá después de que la imagen haya terminado de descargarse.
Al trabajar con componentes y eventos de distribución, la sintaxis varía ligeramente con respecto a la de los detectores de eventos de los ejemplos anteriores. En especial, deberá utilizar el método addEventListener() en lugar de llamar a addListener(). En segundo lugar, deberá especificar el evento específico que desea detectar, además del objeto o función de detector de eventos.
En lugar de utilizar un objeto detector, como en el primer procedimiento de Utilización de detectores de eventos con componentes, puede utilizar una función personalizada. El código del ejemplo anterior podría reescribirse de la siguiente forma:
System.security.allowDomain("http://www.helpexamples.com");
my_ldr.addEventListener("progress", progressListener);
my_ldr.addEventListener("complete", completeListener);
my_ldr.load("http://www.helpexamples.com/flash/images/image1.png");
function progressListener(evt_obj:Object):Void {
trace(evt_obj.type); // progress
trace("\t" + evt_obj.target.bytesLoaded + " of " + evt_obj.target.bytesTotal + " bytes loaded");
}
function completeListener(evt_obj:Object):Void {
trace(evt_obj.type); // complete
}
|
NOTA |
|
En los ejemplos anteriores, los detectores de eventos siempre se añaden antes de que se llame al método |
Flash CS3
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/main/00000839.html