Foros del Web » Creando para Internet » Flash y Actionscript »

Detener function anterior

Estas en el tema de Detener function anterior en el foro de Flash y Actionscript en Foros del Web. Hola a todos. Tengo el siguiente codigo el cual ejecuta esa funciondependiendo de la provincia seleccionada. Código: function cargaImg(){ var dataConsulta = new Array(); dataConsulta= ...
  #1 (permalink)  
Antiguo 29/04/2012, 07:18
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Detener function anterior

Hola a todos. Tengo el siguiente codigo el cual ejecuta esa funciondependiendo de la provincia seleccionada.
Código:
function cargaImg(){
var dataConsulta = new Array();
dataConsulta= //este array se rellena desde una base de datos, hasta 3000 registros
contenedor.loadMovie(dataConsulta);
}
Al hacer click en un boton se cargan los datos. El problema viene cuando se ha hecho click en buscar y mientras se están cargando los datos se selecciona otra provincia y se le vuelve a dar a buscar. El sistema tiene que finalizar la primera consulta y cuando finaliza comienza la segunda, pero tarda un motón y da la sensación de que el PC se "cuelga".
¿hay alguna manera de finalizar la primera búsqueda instantáneamente y empezar en la segunda?
  #2 (permalink)  
Antiguo 29/04/2012, 08:53
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Detener function anterior

No entiendo del todo tu problema, vaya pues no me lo imagino, pero dentro de lo que alcanzo a comprender, no sería cuestión de deshabilitar la seleccion de provincias mientras se realiza la búsqueda?
  #3 (permalink)  
Antiguo 29/04/2012, 09:13
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: Detener function anterior

Si, dehabilitar la opcion de provincias es una opción, pero no es la buena ya que impido realizar más búsquedas hasta que hayan cargado los datos de la primera consulta. la idea es que se interrumpa la primera consulta y de comienzo la segunda.
Es decir, si la primera consulta tarda 15 segundos en completarse totalmente, dada la cantidad de datos y durante esos 15 segundos se realiza de nuevo otra consulta (ambas con la misma funcion), la segunda no dá comienzo hasta que no ha finalizado la primera. Es decir, al ejecutar la segunda consulta debería detener primeramente la que ya se está realizando. ¿pero como detengo la función que se está ejecutando?
  #4 (permalink)  
Antiguo 29/04/2012, 12:34
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Detener function anterior

Puedes utilizar Eventos, si es que estas programando en AS3, mediante el metodo dispatchEvent()

Si tienes manera de conseguir el libro " La biblia de ActionScript 3" te va a servir bastante el capitulo sobre eventos del libro.

Basicamente, despacharias un evento "BUSQUEDA_FINALIZADA", y hasta que no se detecte el evento "BUSQUEDA_FINALIZADA" la siguiente busqueda no se realiza.

Como realizas la busqueda? Una busqueda entre 3000 registros no se deberia tardar 15 segundos, es demasiado tiempo, hay mucho por optimizar ahi. He realizado busquedas en bases de datos gigantescas que toman 1 segundo.
  #5 (permalink)  
Antiguo 29/04/2012, 13:30
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: Detener function anterior

Hola Alan, gracias por tu respuesta!!
Lamentablemente esta realizado AS2.
La búsqueda tarda tanto ya que es un programa de flash con zinc y tiene que buscar en la base de datos en access, escribir todos los datos y lo peor... cargar TODAS las imágenes en contenedor que forma parte de un slide, que además no están optimizadas (cosas de los clientes). El código es tan sencillo que no cabe más optimización.

funcion que recoge los datos en un array
funcion que recorre el array y carga la ruta de la imagen.
Por el tema de los bucles y rendimiento no hay ninguno que llame a ninguna funcion, aunque he comprobado tiempos y ahorro superpoco.
Finalmente he solucionado el asunto mostrando el típico menu 'mostrar del 1 al 300', 'mostrar del 300-600'... se bajan los tiempos increíblemente.
De nuevo gracias por tu atención
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:54.