Estoy usando el codigo de la API de YouTube de la pagina de Google:
Código HTML :
https://developers.google.com/youtube/flash_api_reference?hl=es-
El problema concreto es que estoy usando una galeria para seleccionar los videos desde un xml. Dicha galeria esta creada de esta manera:
Código ActionScript :
for (i = 0; i < larXml; i++) { tb = new MovieClip(); tb.alpha = 0; tb.x = 930; tb.y = 100 * dirY + 120; contenedor.addChild(tb); ldr = new Loader(); dirX++; if (dirX == 1) { dirX = 0; dirY++; } Iluminacion(); CargarThumbs(tb); addChild(contenedor); }
La funcion CargarThumbs es esta:
Código ActionScript :
function CargarThumbs(tb:MovieClip):void { tb.buttonMode = true; tb.addChild(ldr); tb.addEventListener(MouseEvent.ROLL_OVER, alPasar); tb.addEventListener(MouseEvent.ROLL_OUT, alQuitar); ldr.load(new URLRequest(xml.videos[i].Lista[1].attributes())); Click(i); ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, Prog); function Prog(e:ProgressEvent):void { var por:Number = Math.round(e.bytesLoaded * 100 / e.bytesTotal); } ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,Listo); function Listo(e:Event):void { Tweener.addTween(tb,{alpha:1,time:2,transition:"easeOutQuad"}); } function alPasar(e:MouseEvent):void { Tweener.addTween(tb,{alpha:0.5,time:1,transition:"easeOutQuad"}); } function alQuitar(e:MouseEvent):void { Tweener.addTween(tb,{alpha:1,time:1,transition:"easeOutQuad"}); } }
Por ultimo, la funcion Click, la que selecciona los videos, es esta:
Código ActionScript :
function Click(n:Number) { function alClick(e:MouseEvent) { video(xml.videos[n].Lista[2].attributes().toString()); } tb.addEventListener(MouseEvent.CLICK, alClick); }
"video" es la funcion que carga los videos de YouTube, quien contiene el codigo de la API de YouTube:
Código ActionScript :
function video(videoURL:String) { Security.allowDomain("http://www.youtube.com"); Security.allowDomain('http://gdata.youtube.com'); Security.allowInsecureDomain('http://gdata.youtube.com'); Security.allowInsecureDomain('http://www.youtube.com'); youtubeloader = new Loader(); youtubeloader.unloadAndStop(); youtubeloader.contentLoaderInfo.addEventListener(Event.INIT,onLoaderInit); youtubeloader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3")); function onLoaderInit(event:Event):void { addChild(youtubeloader); youtubeloader.content.addEventListener("onReady",onPlayerReady); } function onPlayerReady(event:Event):void { player = youtubeloader.content; player.x = 200; player.y = 200; player.setPlaybackQuality("large"); player.loadVideoById(videoURL, 0); } }
El problema es que cada vez que se hace click en las miniaturas (thumbs) al cargar el video queda "encimado" al anterior, es decir, ni se detiene ni se descarga. Se que el tema se ha tratado pero no me han funcionado las opciones que se propusieron, al menos las que vi en el foro.
He intentado con "player.clearVideo();", "player.destroy();" y cuando he insertado estas lineas, el error es que "se hace referencia a un objeto nulo". Lo cual creo debe ser porque no hay ningun video cargado e intento eliminar algo que no existe.
Acudo a ustedes para saber si pueden ayudarme, ya que hace bastante tiempo que estoy luchando con esto y el tiempo no es lo que sobra, como es habitual.
Muchas gracias de antemano por cualquier recomendacion que me hagan.
STARLANCER
