Comunidad de diseño web y desarrollo en internet online

Cargar XML externo al estilo reproductor de FLV

Citar            
MensajeEscrito el 13 Dic 2009 03:28 pm
Hola a todos...

He realizado un pequeño quiz con ActionScript 2 (al ActionScript3 todabía no me le mido... cuando uno se aprende las respuestas le cambian las preguntas :twisted: ). El contenido de los quizes preguntas, respuestas e imagenes las he adicionado con XML, y todo funciona.

La cuestión es que quiero cargar el xml por la url cuando cargo el swf, para tener un solo swf que cargue diferentes XMLs, como se hace con los videos FLV o los Mp3 de los reproductores. Ya he buscado en google y no le encuentro por donde o como hacerlo asi que solicito su ayuda.

He visto que en el HTML se hace algo así cuando se carga el FLV

Código HTML :

http://www.dominio.com/flvplayer.swf?file=http://www.dominio.com/video.flv


Yo quiseira hacer algo asi

Código HTML :

http://www.dominio.com/quiz.swf?file=http://www.dominio.com/quiz_matematicas.xml


El xml lo cargo así.

Código ActionScript :

xmlData.load("quiz_00.xml");


Quisiera saber si esto es posible, pues de lo contrario mi idea, de hacer una "máscara" de los quizes y cargar xml para cambiar el contenido ya no funcionaria y me tocaria hacer muchos flas con sus respectivos swf llamando los XML corespondientes y se volveria algo inmanejable pues son muchos quizes.

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Dic 2009 08:57 pm
dnomada, si es posible hacer lo que pides. Tampoco es necesario llamar directo al SWF, puedes ponerlo como normalmente lo harías en cualquier HTML, y dentro para pasarle variables, tendrías que hacer lo siguiente:

Código HTML :

<div align="center">
      <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="900" height="530" align="absmiddle">
        
        <param name="movie" value="flash.swf?file=algo" />
        <param name="quality" value="high" />
        
        <param name="bgcolor" value="#FFFFFF" />
        <embed src="flash.swf?file=algo" quality="high" bgcolor="#FFFFFF" width="900" height="530" align="absmiddle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />          
      </object>
    </div>


Con eso le pasamos al flash una variable, que debemos recoger de la siguiente forma:

Código ActionScript :

_root.file


Si puedes usar PHP sería ideal, porque puedes hacer algo como esto:

Código PHP :

<head>
<?php
$file = $_GET['file'];
?>
<script src="scripts/func.js" language="javascript"></script>
</head>
<body>
<div align="center">
      <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="900" height="530" align="absmiddle">
        
        <param name="movie" value="flash.swf?file=<?php echo $file ?> "/>
        <param name="quality" value="high" />
        
        <param name="bgcolor" value="#FFFFFF" />
        <embed src="flash.swf?file=<?php echo $file ?>" quality="high" bgcolor="#FFFFFF" width="900" height="530" align="absmiddle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />          
      </object>
    </div>
</body>
</html>


De esta forma puedes pasarle los valores de tu site directo al Flash desde la URL:

Código :

www.url.com/quiz.php?file=algo.xml


Otra buena idea, sería poner las diferentes configuraciones en un archivo inicial de carga XML, algo como:

Código XML :

<configs>
   <quiz>quiz1.xml</quiz>
   <quiz>quiz2.xml</quiz>
   <quiz>quiz3.xml</quiz>
   <quiz>quiz4.xml</quiz>
</configs>


Y luego llamar en vez de file= a una variable id, algo como:

Código :

www.url.com/quiz.php?id=1


De esta forma puedes luego resolver una carga en tu .SWF que cargo los paths del quiz, luego tomas la variable id=1 (_root.id), y la usas para leer un array:

Código ActionScript :

var xml_path:String = path_server+Config_Arr[_root.id];


Si lo quieres un poco más seguro aun, puedes correlacionar además un código en la carga del XML:

Código XML :

<configs>
   <quiz>
      <path>quiz1.xml</path>
      <code>927n28723</code>
   </quiz>
</configs>


De esta forma puedes pasar el code, que lo resuelves finalmente en que quiz realmente es. Evitando que un usuario normal pueda andar leyendo quiz que no le corresponden.

Aunque claro, la otra opción es más segura, puedes cargar en DB y no en XML tu config.

Espero te ayude.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 14 Dic 2009 04:25 am
Gracias Hernán ya estoy revisando y probando, y estare contando como me fué (esperio que bien)

Gracias de nuevo.

Saludos, José

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Dic 2009 04:43 am
De nuevo, gracias Hernán, con la primera opción ya pude adaptar el quiz al administrador de contenidos, asi que quedo muy bien... ahora el reto es pasarlo a actionscript 3... :? por que habra cambiado tanto... si ya medio entendia el AS2... :( volver a aprender...

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Dic 2009 08:33 am
Para cargar xml desde AS3, encontre esta solucion sencilla en este video tutorial

Código ActionScript :

var loader:URLLoader = new URLLoader();
loader.dataFormat= URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, onComplete);
var request:URLRequest = new URLRequest("myData.xml");
loader.load(request);

function onComplete(e:Event):void
{
   var myXML:XML = new XML(e.target.data);
        trace(myXML);
};


se pueden referenciar los nodos hijos con "." ejemp: trace("Nombre: "+myXML.variable[1].nombre) suponiedo nuestro XML (myData.xml) la respuesta sera "Nombre: Jorge Jorge Jorge"

Código XML :

<Lista>
    <variable id="0">
    <nombre>Alberto alberto alberto</nombre>
   </variable>
    <variable id="1">
    <nombre>Jorge Jorge Jorge</nombre>
   </variable>
</Lista>


espero que te sirva.

Por xTeTe

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Dic 2009 12:05 pm
Muy interesante lo de cargar XML con AS3 lo estare porbando... aunque la verdad no se nada de AS3, lo estuve mirando y cambio tanto que creo que la curva de aprendizaje sera bastante lenta... y ahora con lo de AIR que tengo medio idea que es (pero la verdad solo se que existe), ya no se que aprender... demasiadas cosas...

El proximo año la meta sera aprender AS3 o Flex o yo no se que... pero revisare los posts a ver que es lo que mas me conviene y esperemos que cuando me aprenda las respuestas no me cambien las preguntas...

:twisted:

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Dic 2009 12:10 pm
dnomada, yo también tengo como meta AS3, dado que no he tenido tiempo para actualizarme. Pero no te asustes, si te fijas todos los códigos, conservan gran parte de la estructura de AS 2 y su lógica. Es solo un poco más de OOP y algunas paradojas nuevas de sintaxis.

Te puedes dar cuenta porque al leer el código en AS 3, no se complica demasiado entender que hace, y es fácil de adquirir la nueva sintaxis. Cuestión de costumbre.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 15 Dic 2009 12:27 pm
Eso espero... no quiero que la curva de aprendizaje sea muy alta... por razones de tiempo... estoy pensando seriamente en hacer algún curso o algo así... siempre he sido autodidacta... pero por tiempo creo que estaré considerando pagar algún curso... es saber cual y que si Flex o AS3 y a quien!!!!...

Saludos, José

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox

 

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