Comunidad de diseño web y desarrollo en internet online

Que no pase a la siguiente orden si la primera no finaliza

Citar            
MensajeEscrito el 29 Abr 2008 07:54 pm
Haver si me se explicar:
Tengo un archivo.txt que dentro pone “num=1234”

En flash, con loadvars, he echo que aparezca en un campo de texto dinamico llamado “campotxt” la variable ”num” del ”archivo.txt”, en ese caso “1234”, y he puesto otro campo de texto dinamico, llamado “Correcto”, para que me diga si la variable ”num” del ”archivo.txt” es “1234” o no

Y tambien hay un boton, que dice:

Código :

on(release) {
   cargarvariables.load(“archivo.txt”);
}
if (campotxt == “1234”) {
        correcto.text = (“Si”)
        } else {
        correcto.text = (“No”)
}


y en la escena dice:

Código :

var cargarvariables:LoadVars = new LoadVars();
cargarvariables.onLoad = function(exito) {
   if (exito) {
      campotxt.text = this.num;
   } else {
      campotxt.text = “Error“;
   }
};


Al pulsar el boton, como es logico me sale de respuesta “SI”

El problema que tengo, es que en el ”archivo.txt”, tengo muchisimas variables, y eso, hace que tarde en aparecer la variable correspondiente en el ”campotxt”, en este caso ”1234”, y la funcion del boton no se espera a que cargue, haver si me explico:

El boton dice:
1. Cargar la variable del ”archivo.txt” en el ”campotxt”
2. si el ”campotxt” es igual a ”1234” responder ”si” de lo contrario responder ”no”

Pues al pulsar el boton, empieza a hacer la orden 1, que es cargar el texto en el campotxt, y pasa a la siguiente antes de que la primera este cargada.
Al hacer eso, como la primera orden no esta echa, en el campotxt no aparece nada, y la segunda orden da como resultado ”no”

Resumiendo, hay alguna manera de decirle que si la primera orden no esta cumplida, no pase a la segunda antes de que acabe?

Gracias.

Pd: Siento mucho haverles hecho leer tanto para esplicar un simple problema

Por -cibernetik-

72 de clabLevel



 

msie7
Citar            
MensajeEscrito el 29 Abr 2008 09:50 pm
Haver, Haver .... ¿ese es el nombre de una variable o quisiste decir: "A ver"?

Luego el objeto LoadVars carga variables asíncronamente, eso quiere decir cuando las variables se cargan, dispara un callback. Dado que siempre tardan en cargarse, no se puede poner inmediatamente código sobre ellas, solo en el callback. Tampoco se puede suprimir la tardanza en cargar. En síntesis: el código del botón es erróneo, adaptalo al segundo código que posteaste, que es correcto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 May 2008 06:49 am
Este codigo es de la ayuda del F1 de flash sobre la funcion loadVariables:

Código :

loadVariables("params.txt", target_mc);
var param_interval:Number = setInterval(checkParamsLoaded, 100); // Cada 100ms verificará si se cargaron todas las variables
function checkParamsLoaded() {
    if (done != undefined) {
        // CODIGO QUE SE EJECUTARA POR QUE SE CARGARON TODAS LAS VARIABLES        
        clearInterval(param_interval); // detiene la verificacion
    }
}


El archivo externo, params.txt, incluye el texto siguiente:

Código :

var1="hello"&var2="goodbye"&done="done"


Fijate bien que la ultima variable guardada en el archivo de texto (done="done") esa variable "done" solo la usas apra verificar si es undefined o no, lo cual te indica que todas las variables anteriores se cargaron ya que se cargan en orden de aparición.

Para tu porblema debes entocnes adaptar tu codigo por que no es posible parar una linea de codigo hasta que se cumpla una funcion como cargar un archivo etc...

Dodne coloqué el comentario "// CODIGO QUE SE EJECUTARA POR QUE SE CARGARON TODAS LAS VARIABLES" allí tu sustitulles con el codigo que requiera usar las variables totalmente cargadas.
y por ultimo "clearInterval(param_interval);" apaga la funcion de verificación cada 100ms con lo cual te aseguro que el codigo se ejecutará solo 1 sola ves leugo de la carga total y exitosa de todas las variables....

hahaha ahora ruega que nos se te vaya el internet o se rompa en enlase en plena transferencia por que en el peor caso podrias caer en un laso de espera infinito.... pero eso es ser muy agua fiestas... no me creas mucho sobre lo anterior :wink: ... pero podrias colocar un contador de time out para que a los 15seg de intentar cargar las variables arroje un error y aborte el proceso

Algo asi como lo que tengo yo en un programa mio

Código :

Esto iria dentro de      function checkParamsLoaded() {....     al final
   // Tiempo de espera
   TimeOut = TimeOut + 100; // Cuenta 15 segundos de espera
   if (TimeOut == 100*10*15) {
      //ENVIA MENSAJE DE ERROR O HACE ALGO PARA ABORTAR EL PROCESO INCOMPLETO
      clearInterval(param_interval); // detiene la verificacion
   }

Por Enav

180 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 May 2008 01:07 pm
Enav: F1 sobre LoadVars, no sobre loadVariables y nos olvidamos de tener que estar chequeando si tal o cual tiene ahora valor, porque ya tenemos el callback onLoad

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 May 2008 09:59 pm
Sorry :cry: sniff sniff no he profundisado mucho en las nuevas tecnologias

Por Enav

180 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 May 2008 01:44 am
LoadVars apareció con Flash 6, de eso hace ya algunos años, de nuevo, poco

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.