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

Leer XML sincrónicamente

Estas en el tema de Leer XML sincrónicamente en el foro de Flash y Actionscript en Foros del Web. Hola, soy nuevo en actionscript 2.0 y tengo que resolver el siguiente Problema: Tengo que obtener datos XML desde una URL. El problema es que ...
  #1 (permalink)  
Antiguo 06/12/2007, 12:34
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Leer XML sincrónicamente

Hola, soy nuevo en actionscript 2.0 y tengo que resolver el siguiente Problema:

Tengo que obtener datos XML desde una URL. El problema es que el Método
Xml.onload devuelve la información en cualquier momento, ya que este método es Asíncrono.
Mi problema es que yo necesito obtener los datos inmediatamente (sincrónicamente) para proseguir con la ejecución del codigo con los datos ya obtenidos (ya que con esos valores configuro el video, logo y demás, que se cargan inmediatamente).
¿Es esto posible?
¿Hay alguna otra forma de hacerlo?

Desde ya muy agradecido por su ayuda

Gracias

Miguel
  #2 (permalink)  
Antiguo 06/12/2007, 14:11
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

en realidad tu problema no es que se cargan los logos y eso, es que los estas cargando en el momento equivocado, lo que tienes que hacer es, por ejemplo, en el frame 1 cargar el xml y ponerlo en stop(), onload del xml, recuperas los datos, y una vez obtenidos, pasas al frame 2 que sera el que carga el logo, etc.
__________________
/blog.singuerinc.com
  #3 (permalink)  
Antiguo 07/12/2007, 05:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

Hola y Gracias SinguerInc por responder tan rápidamente. Te comento que es un reproductor de videos con el que estoy trabajando, el cual utiliza varios archivos ".as" para setear sus propiedades (video a reproducir, logo, tamaño, etc) y yo necesito leer el XML en alguno de estos archivos ".as" y no en el ".fla" (por lo que no tengo frames). Lo que quisiera saber es como hacer el stop en el archivo ".as" hasta que se lea el XML y recién después continuar con la ejecución.

O tal vez sea conveniente leer el XML en el ".fla" como tu dices y despues continuar con la ejecución, pero no se bien como hacerlo, ¿Como comunico la el ".fla" con los archivos ".as" para pasarle los datos leidos del XML?
Desde ya se agradece toda la ayuda que puedan brindarme.

Saludos cordiales

Miguel
  #4 (permalink)  
Antiguo 07/12/2007, 10:08
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

actionscript 2 o 3?, con .as que incluyes o son Classes?

el as lo estaras importando en algun frame, has decuenta que el codigo que escribes en el as esta en el frame.
__________________
/blog.singuerinc.com
  #5 (permalink)  
Antiguo 10/12/2007, 06:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

Hola! y Gracias de nuevo por contestarme. Estoy usando actionscript 2.0 (flash 8) y los archivos ".as" son clases. A continuación te pongo el código que estoy utilizando y si puedes me dices si esta bien y como debo distribuirlo.

var obj_xml:XML = new XML();

obj_xml.ignoreWhite = true;

obj_xml.onLoad = function(exito:Boolean) {

if (exito) {

config.file = obj_xml.firstChild.childNodes[0].firstChild.nodeValue;
config.image = obj_xml.firstChild.childNodes[1].firstChild.nodeValue;
config.logo = obj_xml.firstChild.childNodes[2].firstChild.nodeValue;

} else {
trace("Error");
}
};

obj_xml.load("http://www.xxx.com/texto.xml");


Donde config es un "object"

Además, te comento que tengo código solo en el Frame 2 y es allí donde llamo a un ".as" y éste a su vez utiliza varios ".as" más.

Yo quisiera poder tener los datos del XML antes de que el Frame 2 llame al ".as" o en algún momento que yo pueda definir y no se como hacer el STOP que tu mencionas con anteriodidad.

Si puedes ayudarme, te lo agradecería mucho ya que en mi trabajo me lo están solicitando con cierta urgencia.

Saludos cordiales,

Miguel
  #6 (permalink)  
Antiguo 10/12/2007, 14:35
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

creo q lo q tu tienes no son clases, son #include, dame 5 min y te mando un ejemplo para cargar un xml y despues seguir con la reproduccion del flash.
__________________
/blog.singuerinc.com
  #7 (permalink)  
Antiguo 10/12/2007, 14:53
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

en el primer fotograma o en un fotograma antes de "necesitar" el xml haces lo siguiente:

Código:
var unXML:XML = new XML();
unXML.ignoreWhite = true;
unXML.onLoad = function(success) {
    play();
};
unXML.load("tuXML.xml");
stop();
aqui comenzara a cargar el xml y hasta que no este cargado estara en stop, una vez cargado "play()" pasara al siguiente fotograma:

donde ya puedes usar la variable "unXML" que contiene la info cargada del file "tuXML.xml".

saludos...

pd: tambien puedes realizar la operacion dentro de unXML.onLoad que seria mas correcto y no en el siguiente fotograma....como quieras. ciao!
__________________
/blog.singuerinc.com
  #8 (permalink)  
Antiguo 11/12/2007, 06:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

Muchas gracias SinguerInc, realmente agradezco mucho tu ayuda. Me parece que voy camino a la solución. He hecho eso que tu me dices en el Frame 1, pero en el myXML.onLoad seteo variables globales (no se si es óptimo pero funciona) con los valores del XML, y luego accedo a esas variables globales desde los diferentes archivos ".as". Ni bien, pueda solucionar mi problema lo publicaré para que sea de ayuda a otras personas que como yo estamos comenzando por este "arduo camino"

Saludos cordiales,

Miguel
  #9 (permalink)  
Antiguo 11/12/2007, 13:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

SinguerInc o quien pueda ayudarme, tengo una duda que quisiera despejar. Como puedo leer desde una url un parametro (por ej: www.xxxxx.com/myPage.asp?param1=miparametro) de tal forma de poder asignar a una variable el valor "miparametro" pasado en la URL.
Se puede hacer con LoadVars? puedes poner un ejemplo.

Esto es lo ultimo que me falta para terminar mi Player, por eso agradeceria mucho su ayuda.

Saludos cordiales,

Miguel
  #10 (permalink)  
Antiguo 11/12/2007, 14:54
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

ciaccim, por lo que veo estas trabajando con asp, asi que no tendras problemas para realizar esto, tomemos tu url como ejemplo:

www.xxxxx.com/myPage.asp?param1=miparametro

no recuerdo bien como se hace para tomar un dato dede la queryString en asp pero creo que es:
Código:
<%
misFlashVars = "param1=" & request("param1")
%>
en el codigo html de tu flash:

Código:
....
<param name="FlashVars" value="<%=misFlashVars %>" />
....

....
<embed ..... FlashVars="<%=misFlashVars %>" />
....
reconoces la parte del html?? sino lo explico mejor!, pero ya lo he escrito todo completo en otros posts!!!!!!

y en el flash lo recuperas con:

Código:
var miVariableExterna:String = _root.param1.toString();
saludos y suerte.
__________________
/blog.singuerinc.com
  #11 (permalink)  
Antiguo 12/12/2007, 09:44
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

SI comprendo lo del html, estoy probandolo y funciona. Muchas gracias SinguerInc
  #12 (permalink)  
Antiguo 12/12/2007, 10:12
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

mmm...no me des las gracias que hay mala onda conmigo en el foro...si te pillian se meteran contigo tambien...jejeje, saludos!
__________________
/blog.singuerinc.com
  #13 (permalink)  
Antiguo 13/12/2007, 08:59
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

jeje.... pero por que mala onda? si sos muy servicial y amable.

Bueno... ya que estoy te aprovecho con otra inquietud: la lectura del parámetro que te dije anteriormente funciona perfecto, pero ahora tengo otro problema. Mi parámetro tiene forma de XML (es decir, www.xx.com/mypage.asp?param=<player><file>video.flv</file><logo>preview.jpg</logo></player>)
Como puedo hacer para procesarlo igual q a un archivo XML? o como puedo obtener
el valor de los tags file, logo, etc?

Si puedes darme una mano, te agradeceria mucho

Miguel
  #14 (permalink)  
Antiguo 13/12/2007, 09:16
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

mmm, mejor si esto lo procesas antes de mandarlo a la querystring, con esa estructura "no-standard" tendras varios problemas, sobre todo con "<" y ">"
es mas facil pasar simplemente:

mypage.asp?file=video.flv&logo=preview.jpg

pero si por esas razones de la vida lo tienes q hacer con "<>" soy sincero...nunca lo he probado...

mi pregunta es: ya has utilizado esta query formateada en con esos "<>"????, no creo que funcione, si pruebas a crear un simple link html con eso en la query aparece:

<a href="http://www.sitio.com/miPage.aspx?aaa=<algo>dsds</algo>

Código:
miPage.aspx?aaa=%3Calgo%3Edsds%3C/algo%3E
creo que te complicas la vida, yo trataria de modificarlo antes de pasarlo a flash.
__________________
/blog.singuerinc.com
  #15 (permalink)  
Antiguo 14/12/2007, 09:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

Gracias SinguerInc por tu ayuda. Te cuento que no hizo falta hacer anda de eso que te dije. Los solucioné simplemente llamando desde Flash a un archivo ".asp" que devuelve un XML (con la declaración Response.ContentType = "text/xml") y lo proceso como un XML común dentro de Flash. Era más simple de lo que pensaba


Saludos

Miguel
  #16 (permalink)  
Antiguo 14/12/2007, 09:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

Ah me olvidaba, como siempre abusando de tu generosidad, quisiera saber si tenes idea cual es la lógica (o lo que sea) que se utiliza para reproducir primero una publicidad y al finalizar ésta el video deseado. Cualquier idea o info que tengas me sirve, desde ya MIL gracias por las ayudas prestadas y espero que mis inquietudes ayuden a otros también.

Saludos

Miguel
  #17 (permalink)  
Antiguo 14/12/2007, 09:39
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Leer XML sincrónicamente

ah...si querias cargar un xml generado en asp me lo hubieras dicho antes!!!

a la segunda pregunta...se puede todo o casi, si me explicas un poco mejor tu idea "combinamos" algo.
__________________
/blog.singuerinc.com
  #18 (permalink)  
Antiguo 14/12/2007, 09:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Leer XML sincrónicamente

A través de ese XML (obtenido desde la página ASP) paso el video, la imagen previa, el logo a mostrar... y también el video de publicidad. Lo que quiero hacer es tomar ese video de publicidad, reproducirlo y luego recién continuar con la ejecución del video en cuestión. La verdad que explicarte como tengo el código es un poco complejo, ya que tengo muchos archivos ".as" además del ".fla".

Lo que se me ocurre a priori es hacer una especie de bucle en el que la reproducción se ejecute 2 veces, primero con la publicidad y luego el video, pero la verdad no se como y no se si es posible.

No se si tienes alguna idea o puedes ayudarme en algo.

Saludos
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 14:37.