Comunidad de diseño web y desarrollo en internet online

as3 y XML. Como actualizar continuamente un XML

Citar            
MensajeEscrito el 06 May 2010 08:46 am
En primer lugar felicitar a todos los que haceis posible que los ignorantes podamos aprender. Los foros son una herramienta magnífica para adentrarse en el mundo de la programación.

Estoy desarrollando un swf no para internet sino para una pantalla informativa. La pantalla siempre está mostrando el mismo swf.

Este swf lee datos de un XML. Lo que quiero conseguir es un sistema para que cada vez que cambio algun dato en el xml, se vea reflejado de forma inmediata en el swf (insisto en que la pantalla esta permanentemente mostando ese swf)

Lo que he hecho hasta ahora es utilizar un timer que recarga el xml cada 10 segundos infinitas veces, pero la verdad es que no se si eso genera algun problema ( en este caso los datos a cargar no son muchos)

Os dejo el script desarrollado:

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
var tmr:Timer=new Timer(10000,0)
tmr.start();
tmr.addEventListener(TimerEvent.TIMER,timerTmrListener);
function timerTmrListener(evt:TimerEvent):void {myLoader.load(new URLRequest("oman3d.xml"));
}
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
myXML = new XML(e.target.data);
Nombre_foto.text = myXML.IMAGE[0].@TITLE;
}

No se si me podeis sugerir algo más eficaz o si lo que he desarrollado es suficientemente eficaz/sencillo.

Gracias por vuestra colaboración.

Por jbrooks

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2010 09:30 am
A modo de sugerencia, por hacerlo algo más eficaz intentaría comprobar sólo la fecha de modificación usando un fileReference (no lo he usado nunca y no tengo ni idea de si servirá mejor)

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2010 10:12 pm
Hola JBrook por favor puedes ser un poco mas especifico? puedes decirme en donde actualizas el xml? es decir si es desde el mismo swf, es fácil porque puedes trabajar con un dispatchEvent, si es desde un script desde otro lenguaje, se puede hacer otro tipo de trabajo, además si estás trabajando en el mismo xml, el flash crea un buffer, asi q no vas a ver la actualización, yo tuve ese mismo problema y The Fricky! me ayudó a resolverlo, debes crear una variable al momento de llamar a tu xml, ejemplo:

Código ActionScript :

function timerTmrListener(evt:TimerEvent):void {
    //Fijate q llama a una variable despues del .xml
    myLoader.load(new URLRequest("oman3d.xml?mivariable="+ Math.random() ));
}

myLoader.addEventListener(Event.COMPLETE, processXML);
    function processXML(e:Event):void {
    myXML = new XML(e.target.data);
    Nombre_foto.text = myXML.IMAGE[0].@TITLE;
    //BLA BLA BLA LEE EL XML
}

Por freddydg

16 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Dic 2012 03:14 pm

freddydg escribió:

Hola JBrook por favor puedes ser un poco mas especifico? puedes decirme en donde actualizas el xml? es decir si es desde el mismo swf, es fácil porque puedes trabajar con un dispatchEvent, si es desde un script desde otro lenguaje, se puede hacer otro tipo de trabajo, además si estás trabajando en el mismo xml, el flash crea un buffer, asi q no vas a ver la actualización, yo tuve ese mismo problema y The Fricky! me ayudó a resolverlo, debes crear una variable al momento de llamar a tu xml, ejemplo:

Código ActionScript :

function timerTmrListener(evt:TimerEvent):void {
    //Fijate q llama a una variable despues del .xml
    myLoader.load(new URLRequest("oman3d.xml?mivariable="+ Math.random() ));
}

myLoader.addEventListener(Event.COMPLETE, processXML);
    function processXML(e:Event):void {
    myXML = new XML(e.target.data);
    Nombre_foto.text = myXML.IMAGE[0].@TITLE;
    //BLA BLA BLA LEE EL XML
}



muchas gracias :')

Por cenzontleroner

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Ene 2013 09:56 pm
gracias creo q jamas hubiese podido sin ver esto

Por esthevensllc

0 de clabLevel



 

chrome

 

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