Comunidad de diseño web y desarrollo en internet online

AYUDA con FLVPlayback cargado dinamicamnte (unload, close??)

Citar            
MensajeEscrito el 01 May 2008 04:50 am
Hola gente, siempre leo este foro pero es la primera vez que escribo, porque tengo un problema que supero mis conocimientos. He buscado bastante hace varios dias ya, pero no consigo solucionarlo. Les cuento:
Tengo un FLVPlayback cargado dinamicamente con XML en el que tengo varios FLV para reproducir. Al costado un loader con sus child en el que cargo el thumb de cada video y unos textos con los nombres.
En un menu tengo diferentes categorias para los videos (\"bandas\", \"batucadas\", \"salsa\",etc...). Funciona todo de maravillas, ahora el problema viene cuando quiero cambiar la categoria... Al inicio cargo por ejemplo \"bandas.xml\", y tengo ademas en la misma carpeta los archivos \"batucadas.xml\", salsa.xml\". etc) alli tengo detallados la ruta de los archivos flv, la ruta a los thumbs, el nombre del video...
Ademas tengo un menu con los botones para cada categoria (bandas_btn, batucadas_btn, salsa_btn etc, etc).

PROBLEMA:
Lo que intento hacer es que al darle click al \"batucadas_btn\" me cargue el archivo \"batucadas.xml\", y se carguen los archivos flv en el Player, thumbs y textos al loader, todo como al inicio.
El problema es que el FLVPlayback sencillamente \"ni mu\", \"nada de na\". No puedo lograr que me descargue el bendito xml cargado al inicio y me cargue el xml del boton clickeado. Lo maximo que pude hacer es darle un stop().
Hay forma de hacer esto dinamicamente y en el mismo Player o tendre que buscar alguna solucion alternativa ??.
Es un poco complicado, no se si me explique bien, cualquier cosa por favor me dicen y tratare de explicarme mejor.


Y aca pongo algo de codigo para que lo vean mas claro. Algunas cosas aun no las termine por lo que estan aun como comentarios.


Código :

//las clases 
import fl.video.*;
import fl.events.ScrollEvent;

//seteo de Arrays para el archivo XML a cargar
var flvControl = video_mc.mivideoPlayer;
var videoList:Array = [];
var artistList:Array = [];
var categoriaList:Array = [];
//var dateList:Array = [];
var thumbList:Array = [];
//var urlList:Array = [];

var videoIndex:Number = 0;
var b:Number = 0;
var artistVar:String = \"Cargando...\";

// *************  CARGA DE XML Y LOADER ****************

var xmlURLLoader:URLLoader = new URLLoader();
var xmlURLRequest:URLRequest = new URLRequest(\"bandas.xml\");
xmlURLLoader.load(xmlURLRequest);
xmlURLLoader.addEventListener(Event.COMPLETE, dataLoaded);
function dataLoaded(event:Event):void {
   var datosXML:XML = new XML(xmlURLLoader.data);
   var a:Number = datosXML.video_path.length();

   while (b < a) {
      videoList.push(datosXML.video_path[b]);
      artistList.push(datosXML.artist_name[b]);
      categoriaList.push(datosXML.categoria[b]);
      //dateList.push(datosXML.video_date[b]);
      thumbList.push(datosXML.thumb_path[b]);
      //urlList.push(datosXML.url_link[b]);
      
      with(holder){
         var vidTemplate:MovieClip = new video_detalles();
         vidTemplate.x = 0;
         vidTemplate.y = b * 50;
         vidTemplate.artistBox.text = artistList[b];
         vidTemplate.categoriaBox.text = categoriaList[b];
         
         vidTemplate.trackNum = b;
         //vidTemplate.urlVar = urlList[b];
         vidTemplate.thumbPathVar = thumbList[b];
         vidTemplate.flvPathVar = videoList[b];
         
         addChild(vidTemplate);
         
         
      }

      b = b + 1;
   }
   
   flvControl.autoPlay = true;
   flvControl.source = videoList[videoIndex];
   artistVar = artistList[videoIndex];
   myScroller.source = holder;
} 



// ************  Y AQUI EL PROBLEMA ***************


//BOTON BATUCADAS
var botonbatucadas = (root as MovieClip).menuVideos.batucadas_btn;
botonbatucadas.addEventListener(MouseEvent.CLICK, videobatucadas);
function videobatucadas(event:MouseEvent):void{
               //AQUI DEBERIA LIMPIAR O DESCARGAR EL FLVPLAYBACK EN USO ( ??? )
   var xmlURLLoader:URLLoader = new URLLoader();
   var xmlURLRequest:URLRequest = new URLRequest(\"batucadas.xml\");
   xmlURLLoader.load(xmlURLRequest);
   xmlURLLoader.addEventListener(Event.COMPLETE, dataLoaded);
}



Fijense que al final de la funcion para el click de botonbatucadas vuelvo a llamar a la funcion dataLoaded, con eso pense que bastaba pero veo que no...Lo que entiendo es que el FLVPlayback al estar en uso no quiere cargar otra cosa. :(
Desde ya muchas gracias por la ayuda.

Por neuromante

10 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 May 2008 01:25 pm
No puedo lograr que me descargue el bendito xml cargado al inicio y me cargue el xml del boton clickeado.


Copiaste y pegaste lo que tenías arriba pero abajo, ¿o hiciste algo más?
Tu lista tiene una función de "rellenado" pero no de "vaciado", es decir lo primero es usar removeChild para quitar cada uno de los items cargados anteriormente antes de volver a rellenar, por ejemplo

for(var i:Number=holder.numChild, i>=0 i--) holder.removeChildAt(i)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 May 2008 06:21 pm
Hola, muchas gracias por la ayuda, aun no consigo resolverlo, he puesto al principio de function videobatucadas el siguiente codigo como para que al click me vacie todo:

Código :

while (holder.numChildren > 0){   
holder.removeChildAt (0);
}
if (video_mc.numChildren > 0) {
video_mc.removeChildAt(0);
}


he logrado vaciar los holders pero no puedo volverlos a llenar. Tanto el holder (los thumbs y detalles de los videos) como el video_mc (el contenedor del FLVPlayback). Estoy probando hacer un addChild nuevamente pero nada...
Estoy un poco liado, pero bueno, sigo intentando y comunicare el progreso.

Por neuromante

10 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 May 2008 09:09 pm
Investigando un poco en la ayuda del Flash veo la propiedad del FLVPlayback visibleVideoPlayerIndex que me dice:

Número que puede utilizar para administrar varios flujos de archivos FLV. Establece la instancia del reproductor de vídeo que puede verse, oírse y controlarse mediante el aspecto o los controles de reproducción, mientras los demás reproductores de vídeo quedan ocultos y silenciados. No convierte al reproductor de vídeo en el destino de la mayoría de las API; para ello, utilice la propiedad activeVideoPlayerIndex.


Creo que por aca podria andar la solucion...
Jorge, tenias razon con lo del codigo, tenia algunos errores en el codigo del boton que ya he solucionado, pero aun no logro descargar y volver a cargar el FLVPlayback. Voy a instalar el update 9.0.2 para ver si hay algun arreglo significativo referente al Player.

Por neuromante

10 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 May 2008 01:45 am
Bueno, muchas gracias, queria avisarles que ya he solucionado mi problema, habia cometido algunos errores. Despues de vaciar los child de cada loader en el click del boton cargue una nueva instancia del FLVPlayback con
video_mc.addChild(flvControl);
Luego cree dentro de la funcion del click videoBatucadas otra funcion similar a la de carga inicial llamada dataLoaded2, y lo que hice al inicio de esta ultima funcion es limpiar los arrays videoList, artistList, categoriaList y thumbList que los tenia cargados con los datos iniciales de bandas.xml (por eso el Player no me daba bola!!), les hice un array.splice(0) y.... VUALA !!!

Bueno, muchas gracias por la ayuda, por hoy basta de codigo para mi, tengo los ojos achinados....

Por neuromante

10 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 May 2008 01:49 am
A eso le llamo yo "programación por duplicación" ;)
Que siga la fiesta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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