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

problema con xml externo

Estas en el tema de problema con xml externo en el foro de Flash y Actionscript en Foros del Web. estoy haciendo un repdroductor de video con 4 videos que se cargan de forma dinamica con xml. De momento he conseguido 4 botones con un ...
  #1 (permalink)  
Antiguo 16/11/2007, 11:02
 
Fecha de Ingreso: agosto-2006
Mensajes: 81
Antigüedad: 18 años, 3 meses
Puntos: 0
problema con xml externo

estoy haciendo un repdroductor de video con 4 videos que se cargan de forma dinamica con xml. De momento he conseguido 4 botones con un texto que al hacer click activan el video..

Pero lo que quiero es que ademas se vea una imagen junto con su texto. Nose como cargar esa imagen con el xml.

El boton que carga el video, tiene AS. Como podeis ver carga un texto


import flash.events.*;
var selected:Boolean = false;
var index:Number;

function setLabel(str:String):void
{
label_txt.text = str;
}


function setSelection(b:Boolean):void
{
if(!b){
gotoAndStop("up");
}else{
gotoAndStop("ov");
}
selected = b;
}

function overHandler(event:MouseEvent):void
{
if(!selected){
gotoAndStop("ov");
}
}
function outHandler(event:MouseEvent):void
{
if(!selected){
gotoAndStop("up");
}
}
addEventListener(MouseEvent.MOUSE_OVER,overHandler );
addEventListener(MouseEvent.MOUSE_OUT,outHandler);

// Stop the timeline
stop();

vosotros.. como lo hariais?
  #2 (permalink)  
Antiguo 16/11/2007, 12:48
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: problema con xml externo

Simplemente pondría en el xml la dirección de cada imagen asociada a su vídeo y en el onload del xml cargaría en un clip vacio la imagen

Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<listado>
    <video titulo = "titulovideo 1" imagen="imagen_asoaciada1.jpg" archivo="video1.flv" />
    <video titulo = "titulovideo 2" imagen="imagen_asoaciada2.jpg" archivo="video2.flv" />
    <video titulo = "titulovideo 3" imagen="imagen_asoaciada3.jpg" archivo="video3.flv" />
    <video titulo = "titulovideo 4" imagen="imagen_asoaciada4.jpg" archivo="video4.flv" />
</listado>
Salu2 ;
__________________
[+]
[+]
  #3 (permalink)  
Antiguo 16/11/2007, 13:50
 
Fecha de Ingreso: agosto-2006
Mensajes: 81
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: problema con xml externo

y entonces como cargarias los videos? podrias poner un ejemplo? me seria de gran ayuda

saludos
  #4 (permalink)  
Antiguo 16/11/2007, 15:51
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: problema con xml externo

Pués a ver si mañana te puedo hacer un ejemplito...

Lo que pasa es que usaría el componente FLVPlayback() ya que no sé qué player usas tu, y el componente datagrid para poner las fuentes leidas del xml.

Y luego un txt para el titulo y un clip vacio para la imagen.

Salu2 ;)
__________________
[+]
[+]
  #5 (permalink)  
Antiguo 17/11/2007, 01:04
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Re: problema con xml externo

Hola,

Tál y cómo te dije he montado un ejemplillo cogiendo cosillas que ya tenía hechas de aquí y de allá.

Básicamente lo que hace el ejemplo es recoger los datos de un xml(video.xml)

este es el xml
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<listado>
    <videos>
        <titulo>titulovideo 1</titulo>
        <imagen>imagen_asoaciada1.jpg</imagen>
        <archivo>video1.flv</archivo>
    </videos>
    <videos>
        <titulo>titulovideo 2</titulo>
        <imagen>imagen_asoaciada2.jpg</imagen>
        <archivo>video2.flv</archivo>
    </videos>
    <videos>
        <titulo>titulovideo 3</titulo>
        <imagen>imagen_asoaciada3.jpg</imagen>
        <archivo>video3.flv</archivo>
    </videos>
    <videos>
        <titulo>titulovideo 4</titulo>
        <imagen>imagen_asoaciada4.jpg</imagen>
        <archivo>video4.flv</archivo>
    </videos>
</listado>
Este es el código del fla:
Código PHP:
import fl.video.FLVPlayback;
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.*;
import flash.net.URLRequest;

var 
loader:Loader = new Loader();
var 
container:Sprite = new Sprite();
container.name "container";
addChild(container);       
container.x=357;
container.y=170;    
            
var 
miXML:XML = new XML();
var 
XML_URL:String "video.xml";
var 
miXMLURL:URLRequest = new URLRequest(XML_URL);
var 
myLoader:URLLoader = new URLLoader(miXMLURL);
myLoader.addEventListener("complete"xmlLoaded);

datagr.rowCount 4;
datagr.columns = ["Titulo"];
datagr.addEventListener(Event.CHANGEgridItemSelected);

function 
xmlLoaded(event:Event):void
{
    
datagr.selectedIndex=0;
    
miXML XML(myLoader.data);
    
listaRepro(miXML.videos[0].archivo);
    
cargador(miXML.videos[0].imagen);
    for(var 
l:Number 0;l<(miXML.descendants("videos").length());l++)
    {
        var 
titulo:String=(miXML.videos[l].titulo); 
        var 
sampleItem1:Object = { Titulo:titulo};
        
datagr.addItem(sampleItem1);
    }


}

function 
listaRepro(peli:String
{
     
    
player.source peli;
    
player.skinBackgroundColor 0x666666;
    
player.skinBackgroundAlpha 0.5;
    
player.load(peli);
    
player.play();


function 
gridItemSelected(e:Event):void 
{
    
listaRepro(miXML.videos[e.target.selectedIndex].archivo)   
    
cargador(miXML.videos[e.target.selectedIndex].imagen);
}

function 
cargador(imagen:String
{
           
loader.unload();
            
loader.contentLoaderInfo.addEventListener(Event.COMPLETEcompleteHandler);

            var 
request:URLRequest = new URLRequest(imagen);
            
loader.load(request);

            
container.addChild(loader);
            
}

function 
completeHandler(event:Event):void 
{
    
trace("imagen cargada")

Una vez recogidos, lo primero que hace es seleccionar el primer item del datagrid,reproducir el primer video de tu xml y colocar tu primera imagen en un container que defino y posiciono por código.

Y lo demás ya lo controla el evento gridItemSelected del datagrid, cogemos el selectedIndex y lo pasamos a las funciones de carga de imagen y de carga de video.

Por cierto que está con cs3 y mi experiencia en actionscript 3 es limitada, asi que no sé si hay cosillas que se podrían hacer mejor o más fácil.

Seguro que sí...

El ejemplo colgado está aquí

Y los archivos aqui:

Supongo que con esto ya lo puedes retocar a tu gusto...

Salu2 ;)

PD (En el fla que he subido a lo mejor hay algunos imports de más que se me ha olvidado quitar)
__________________
[+]
[+]

Última edición por yoseman; 17/11/2007 a las 01:10
  #6 (permalink)  
Antiguo 17/11/2007, 06:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 81
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: problema con xml externo

muchas muchas gracias yoseman..

basicamente esto es justo lo que necesitaba, solo que lo que hace de botón para cargar el video tendria que ser una imagen y por tanto se tendrian que cargar todas las imagenes de golpe

Que defino un contenidor de imagen para cada una para que lo lea del xml no?

Saludos
  #7 (permalink)  
Antiguo 07/03/2008, 07:16
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid, España
Mensajes: 221
Antigüedad: 17 años, 1 mes
Puntos: 5
De acuerdo Re: problema con xml externo

Muchas gracias Yoseman. Estoy empezando a trastear con el 3.0 y tu código me ha ayudado mucho para trabajar con XML's.
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 17:20.