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

Como actualizar un swf cada x tiempo

Estas en el tema de Como actualizar un swf cada x tiempo en el foro de Flash y Actionscript en Foros del Web. Hola! Pues eso, me gustaría saber si hay alguna forma de actualizar una pelicula de swf cada x tiempo. Prk son unos datos que van ...
  #1 (permalink)  
Antiguo 04/10/2011, 15:57
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Como actualizar un swf cada x tiempo

Hola!

Pues eso, me gustaría saber si hay alguna forma de actualizar una pelicula de swf cada x tiempo. Prk son unos datos que van cambiando(son valores de borsa).

He pensado que esto a un swf no se lo puedes hacer.. prk básicamente es una película pero no sé, sabéis de algún metedo o forma?


Grácias de antemano
  #2 (permalink)  
Antiguo 04/10/2011, 16:46
 
Fecha de Ingreso: noviembre-2010
Mensajes: 94
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: Como actualizar un swf cada x tiempo

A que te refieres con actualizar un SWF?????? Supongo que es una página subida a un servidor. Bueno, lo que tendrías que hacer es trabajar con Flash y XML. La data (que estaría en el archivo XML) tendría que ser sea llamada a traves de AS y así sería muy fácil que puedas manejar a tu antojo la información.
  #3 (permalink)  
Antiguo 04/10/2011, 17:44
Avatar de Silkon  
Fecha de Ingreso: mayo-2011
Ubicación: Lugo
Mensajes: 201
Antigüedad: 12 años, 11 meses
Puntos: 20
Respuesta: Como actualizar un swf cada x tiempo

Se me ocurren muchas maneras de hacerlo. Supongo que los datos los recibes de un archivo externo que coges con un LoadVars ?

Puedes poner una función de tiempo y al finalizar se repita la carga de loadvars.
Puedes poner en el frame 3 el LoadVars y que cada X tiempo vuelva al Frame 1 que volverá al 3.
Puedes poner que cada X tiempo el flash se recargue sobre si mismo con un loadmovie.

De todas maneras si pones mas información de como recibes los datos y si es AS2 si hace falta puedo ponerte código .

Saludos
  #4 (permalink)  
Antiguo 04/10/2011, 18:25
Avatar de Andreys123456  
Fecha de Ingreso: febrero-2009
Ubicación: Perez Zeledon
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Como actualizar un swf cada x tiempo

Estoy de acuerdo con Silkon .. y hace falta mas info para poder ayudarte !
  #5 (permalink)  
Antiguo 09/10/2011, 06:01
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Como actualizar un swf cada x tiempo

hola,
ok mirad,

Tengo un getdata.php (faltan cojer mas datos de la web pero bueno)

Código PHP:
//header("Refresh: 10; URL='getdata.php'");
$context stream_context_create(array('http' => array('timeout' => 5)));
$url file_get_contents('http://www.bolsamania.com/bolsa-cotizaciones/acciones/espana--ibex35.html'0$context);
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($url);
$fci $doc->getElementById('ls_table_ficha_cabecera_indice');
$spans $fci->getElementsByTagName('span');
/* chapuza Nº1; pongo la $j prk hay 4 spans con ese id pero solo me interesan 3 */
$j=0;

for (
$i 0$i $spans->length && $j<=2$i++) {
    echo 
$spans->item($i)->nodeValue '<br />';
    
$j++;
}
/*
 *  Creo el xml
 */
    
$zone 3600*1;// España: GMT+1
    
$hora gmdate("G:i"time() + $zone gmdate("I"));
    
$timestamp gmdate("l   d/m/Y   G:i:s"time() + $zone gmdate("I"));

    
// Se crea el XML que guardará la estructura de datos
    
$doc = new DomDocument('1.0','ISO-8859-1');
    
// create root node
    
$xmldata $doc->createElement('data');
    
$xmldata $doc->appendChild($xmldata);
    
$xmldata->setAttribute('timestamp',$timestamp);

        
/* Indices Generales */
        
$indicesgrales $doc->createElement('indicesgrales');
$indicesgrales $xmldata->appendChild($indicesgrales);

/* Creo elementos Xml para Ibex 35 */

  
$indice $doc->createElement('indice');
  
$indice $indicesgrales->appendChild($indice);
  
$indice->setAttribute('nombre',"IBEX 35");
  
$indice->setAttribute('valor',$spans->item(0)->nodeValue);
  
$indice->setAttribute('dif',$spans->item(1)->nodeValue);

  
/* Creo elementos Xml para DOW JONES */

  
$indice $doc->createElement('indice');
  
$indice $indicesgrales->appendChild($indice);
  
$indice->setAttribute('nombre',"DOW JONES");
  
$indice->setAttribute('valor','0');
  
$indice->setAttribute('dif','0%');
  
/* Creo elementos Xml para BORSA BCN MID-50 */

  
$indice $doc->createElement('indice');
  
$indice $indicesgrales->appendChild($indice);
  
$indice->setAttribute('nombre',"BORSA BCN MID-50");
  
$indice->setAttribute('valor','0');
  
$indice->setAttribute('dif','0%');

  
/* Imprimir xml */
 
$filename="dataeconomia";
  
print_r ("<p style='font-family:Arial; font-size:16px'>Salvando fichero: <b>" $filename ".xml</b></p>");
    
$doc->save($filename ".xml"); 
Que genera un xml
Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <data ..>
  3. <indicesgrales>
  4.     <indice nombre="IBEX 35" valor="8.225,40" dif="-1,54%"/>
  5.     <indice nombre="DOW JONES" valor="0" dif="0%"/>
  6.     <indice nombre="BORSA BCN MID-50" valor="0" dif="0%"/>
  7. </indicesgrales>
  8. </data>

Después de action script tengo esto.

Código Action Script:
Ver original
  1. // Tenemos que poner esto para no
  2. // tener problemas con las tildes
  3. // y otros caracteres especiales
  4. System.useCodepage = true;
  5. // Con esto evitamos que Flash interprete
  6. // los saltos de línea del xml como nodos
  7. // en blanco
  8. XML.prototype.ignoreWhite = true;
  9. datos_txt.autoSize = "left";
  10. // definimos el objeto XML
  11. datos_xml = new XML();
  12. // Cuando se carguen los datos ejecutaremos
  13. // la función cargarDatos
  14. datos_xml.onLoad = cargarDatos;
  15. // Definimos el array donde almacenaremos
  16. // los datos de los borsa
  17. borsa_array = new Array();
  18. // la función cargarDatos se invoca cuando
  19. // hago la llamada a datos_xml.load("borsa.xml");
  20. // al final del código
  21. function cargarDatos(exito) {
  22.     // si el xml se ha cargado bien...
  23.     if (exito) {
  24.         // en el array borsaCargados meto los
  25.         // nodos <borsa> de segundo nivel, pero
  26.         // como todavía no están en el formato
  27.         // que nos interesa, nos lo vamos a recorrer
  28.         // y cada elemento lo pasamos como parámetro
  29.         // a la función pasar_a_array que daja la
  30.         // información a nuestro gusto
  31.         borsaCargados = this.firstChild.childNodes;
  32.         for (var k = 0; borsaCargados[k]; k++) {
  33.             pasar_a_array(borsaCargados[k]);
  34.         }
  35.         // una vez convertidos los datos, eliminamos
  36.         // los objetos que ya no vamos a necesitar, así
  37.         // liberamos memoria
  38.         delete borsaCargados;
  39.         delete datos_xml;
  40.         // muestro los borsa
  41.         verborsa();
  42.     } else {
  43.         // si no se a cargado bien...
  44.         // aquí las sentencias en caso de error
  45.         // durante la carga
  46.         // trace("fallo en la carga");
  47.     }
  48. }
  49. // esta función es la que va ha convertir
  50. // cada nodo en un objeto con propiedades
  51. // más fácil de controlar. Se invoca
  52. // desde la función cargarDatos dentro del for
  53. function pasar_a_array(nodo) {
  54.     // defino el objeto
  55.     var objetoBorsa = new Object();
  56.     // atributos->matriz de atributos del nodo
  57.     var atributos = nodo.attributes;
  58.     // asigno todos los atributos dentro
  59.     // de las propiedades del objeto
  60.     /*for (item in atributos) {
  61.     objetoBorsa[item] = atributos[item];
  62.     }*/
  63.     /* id="1" nombre="IBEX 35" valor="8.225,40" dif="-1,54%" */
  64.     objetoBorsa.nombre = atributos.nombre;
  65.     objetoBorsa.valor = atributos.valor;
  66.     objetoBorsa.dif = atributos.dif;
  67.     objetoBorsa.id = Number(atributos.id);
  68.     // finalmente, añado el objeto al array
  69.     borsa_array.push(objetoBorsa);
  70. }
  71. // función que escribe la lista de borsa dentro
  72. // de la caja de texto. Se invoca desde la función
  73. // cargarDatos
  74. function verborsa() {
  75.     borsa = "";
  76.     for (var i = 0; borsa_array[i]; i++) {
  77.         borsa += "<b>"+borsa_array[i].nombre+" Valor: "+borsa_array[i].valor+"</b> - Diff.: <b>"+borsa_array[i].dif+"</b><br>";
  78.     }
  79.     // quito el último <br>
  80.     borsa = borsa.substring(0, borsa.length-4);
  81. }
  82. datos_xml.load("dataeconomia.xml");
  83. stop();

Grácias,
  #6 (permalink)  
Antiguo 09/10/2011, 12:54
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Como actualizar un swf cada x tiempo

wolas,

Encontre la clase Tiemer, he hize lo siguiente;

stop();
segundos = 2;
espera = function () {
play();
clearInterval(a);
};
a = setInterval(espera, segundos*1000);

Pero se carga toda la pantalla , yo sólo quiero que actualize ciertos campos no todo el swf

Y no me hace caso si le digo que ejecute función cada x tiempo;

a = setInterval(cargarDatos, segundos*1000);

:S

Última edición por marcwolf; 09/10/2011 a las 13:11
  #7 (permalink)  
Antiguo 09/10/2011, 16:47
Avatar de Silkon  
Fecha de Ingreso: mayo-2011
Ubicación: Lugo
Mensajes: 201
Antigüedad: 12 años, 11 meses
Puntos: 20
Respuesta: Como actualizar un swf cada x tiempo

Si solo quieres que se actualicen los datos y no todo el swf. Utiliza es misma función de tiempo así.

Código AS2:
Ver original
  1. segundos = 2;
  2. espera = function () {
  3. datos_xml.load("dataeconomia.xml");
  4. };
  5. a = setInterval(espera, segundos*1000);
  #8 (permalink)  
Antiguo 09/10/2011, 20:54
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Como actualizar un swf cada x tiempo

Lo hize pero se queda igual, los campos no se cambian, sólo me lo hace si pongo play(); pero no me gusta prk recarga la pelicula :S y queda feo.

Quizas tenga que destruir el objeto xml i crear otro de nuevo??? prk tarda los 2 segundos, carga el xml pero después se queda igual aunq que vaya editando el xml no se cambia en el swf

Última edición por marcwolf; 10/10/2011 a las 06:01
  #9 (permalink)  
Antiguo 10/10/2011, 07:56
Avatar de Silkon  
Fecha de Ingreso: mayo-2011
Ubicación: Lugo
Mensajes: 201
Antigüedad: 12 años, 11 meses
Puntos: 20
Respuesta: Como actualizar un swf cada x tiempo

Creo que podría ser un problema de cache, prueba así a ver que tal:

Código AS2:
Ver original
  1. segundos = 2;
  2. espera = function () {
  3. datos_xml.load("dataeconomia.xml?id="+random(666));
  4. };
  5. a = setInterval(espera, segundos*1000);


Con 666 xD números diferentes llegara para que no se repita.
  #10 (permalink)  
Antiguo 10/10/2011, 08:13
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Como actualizar un swf cada x tiempo

hola,

No va, sé muy poco de action script me pone que es; Action Script 1.0 & 2.0.

Bueno la questión es que cree un boton con este código.

Código:
on (release) {
	datos_xml.load("dataeconomia.xml")
	cargarDatos();
}
Pero sólo lo carga una vez, sería lo mismo que en setinterval pero pulsando yo xD, con lo que tendría que limpiar el campo donde imprimo el texto o el objeto, creo vamos

Última edición por marcwolf; 10/10/2011 a las 08:24
  #11 (permalink)  
Antiguo 10/10/2011, 13:22
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Como actualizar un swf cada x tiempo

Ya lo he solucionado y tengo un problema tontísimo, cuando giro 180 grados el texto donde van los datos no se me ven en cambio en posición normal sí , el flash me esta empezando a caer muymuy mal xdd

Solución ami anterior problema;
Código AS2:
Ver original
  1. segundos = 2;
  2. espera = function () {
  3. System.useCodepage = true;
  4. XML.prototype.ignoreWhite = true;
  5. //datos_txt.autoSize = "left";
  6. datos_xml = new XML();
  7.  
  8. datos_xml.load("dataeconomia.xml");
  9.  
  10. datos_xml.onLoad = cargarDatos;
  11. };
  12. a = setInterval(espera, segundos*1000);

Última edición por marcwolf; 10/10/2011 a las 13:33
  #12 (permalink)  
Antiguo 12/10/2011, 17:43
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Como actualizar un swf cada x tiempo

Hola marcwolf:
Para evitar ese problema selecciona el campo de texto dinámico y usa la opción: Incorporar los caracteres, donde seleccionas: Mayúscula, Minísculas y Aceptas.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/

Etiquetas: swf
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 05:18.