Comunidad de diseño web y desarrollo en internet online

reproductor de video con flvplayback

Citar            
MensajeEscrito el 01 Ene 2010 11:17 am
Hola buenas, estoy haciendo una web en as3 , en la que tiene varias secciones, y cada vez que pulso en una de de los botones, se carga una swf en un loader que tengo en el escenario.Mi problema surge, cuando pulso en el boton ver video(video.swf) el cual carga una pelicula, que contiene video atraves de flvplayback, todo funciona correctamente, pero cuando cambio o pulso otro boton , por ejemplo volver a inicio o contacta, el sonido de esa pelicula de video se sigue reproduciendo¿ como controlo que al pulsar en otra seccion dicho sonido de ese video se pare? un saludo a todos Y FELIZ 2010

Por currodelatajadera

33 de clabLevel



 

msie8
Citar            
MensajeEscrito el 01 Ene 2010 09:01 pm
alguien me podria decir , como puedo hacer para que cuando termine un video salte otro automaticamente?teengo este codigo , que lee videos desde un xml a un componente flvplayback, el primer video carga perfecto pero cuando termina no lee el siguiente y no se en que fallo, este es mi codigo:



import fl.video.FLVPlayback;
import fl.video.VideoEvent;
import fl.transitions.easing.*;
import fl.transitions.*;
import fl.transitions.Tween;
//vidPlayer es el componente flvPlayback en el escenario
var t:Tween=new Tween(vidPlayer,"alpha",Regular.easeIn,0,1,1,true);
var vidList_XML:XML;
var vidTitle:String;
var count:int=0;
var xmlLoader:URLLoader=new URLLoader();
xmlLoader.load(new URLRequest("vidList.xml"));
xmlLoader.addEventListener(Event.COMPLETE,xmlloaded);
function xmlloaded(event:Event):void{
vidList_XML=new XML(xmlLoader.data);
vidPlayer.addEventListener(VideoEvent.COMPLETE,changedVid);
function changedVid(e:VideoEvent):void{

var nextVid:String=vidList_XML.vid[count].file;
vidPlayer.source=nextVid;
vidTitle=vidList_XML.vid[count].name;

title_txt.text=vidTitle;
vidPlayer.skinBackgroundColor=Math.random()*0xffffff;
count++;
}

}

Por currodelatajadera

33 de clabLevel



 

msie8
Citar            
MensajeEscrito el 02 Ene 2010 12:24 am
mm lo que puede suceder es que no se actualiza el source del componente , prueba poniendo una funcion que se encargue de darle una ruta al source y le ponga en play, te pongo un ejemplo:

Código ActionScript :

import fl.video.FLVPlayback;
import fl.video.VideoEvent;

//videoPlayBack es el nombre de instancia del componente en el escenario

var sourceVideo:XML;
var currentVideo:int = 0;

var dataVideo:URLLoader = new URLLoader();
dataVideo.addEventListener (Event.COMPLETE, onComplete);

function onComplete (evt:Event):void
{
   dataVideo.removeEventListener(Event.COMPLETE,onComplete);
   //cuando se completa la carga del achivo xml , llamamos a la function playCurrentVideo()
   sourceVideo = new XML(evt.target.data);
   playCurrentVideo ();
}

dataVideo.load (new URLRequest("data.xml"));


function playCurrentVideo ():void
{
   trace ("call playCurrentVideo(), sourceTitle=",sourceVideo.video[currentVideo].title , ",sourceURL=",sourceVideo.video[currentVideo].url);
   videoPlayBack.source = sourceVideo.video[currentVideo].url;
   videoPlayBack.play ();
}


videoPlayBack.addEventListener (VideoEvent.COMPLETE, onCompleteVideo);

function onCompleteVideo (evt:VideoEvent):void
{
   currentVideo++;
   if (currentVideo > sourceVideo.video.length() - 1)
   {
      currentVideo = 0;
   }
   //despues de aumentar el index , volveremos a llamar a la funcion playCurrentVideo (), 
   //asi ocurrira un update en el source del componente
   playCurrentVideo ();
}


eso probado con un xml como este

Código :

<?xml version="1.0" encoding="utf-8"?>
<videoList>
   <video>
      <title>Description of video 0</title>
      <url>assets/video0.flv</url>
   </video>
   <video>
      <title>Description of video 1</title>
      <url>assets/video1.flv</url>
   </video>
   <video>
      <title>Description of video 2</title>
      <url>assets/video2.flv</url>
   </video>
</videoList>


espero te sirva, saludos.


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

opera
Citar            
MensajeEscrito el 02 Ene 2010 12:32 am
Muchas gracias jonhatan, tenias razon , no se actualizaba el source, ahora bien, este video va dentro de un swf externo que lo cargo en el loader del index.swf principal, y el problema es que cuando cambio de seccion me sigue sonando dicho audio.¿como elimino ese sonido? es que si lo paro todo con un SoundMixer.stopAll, me para tambien hasta el audio de fondo.

Por currodelatajadera

33 de clabLevel



 

msie8
Citar            
MensajeEscrito el 02 Ene 2010 03:30 am
Ok , suponiendo que para pasar de seccion usas un codigo parecido al de este post, bien en as3 tenemos 2 eventos que podemos usar cuando cargamos swf externos, que son :Event.ADDED_TO_STAGE y REMOVED_FROM_STAGE, si mal no recuerdo , a grandes rasgos el primero se dispara cuando el stage esta listo , al estarlo es que nuestro "swf" puede ser agregado al stage, el segundo se dispara cuando es removido un displayObject del stage ,en nuestro caso un swf, bien agrega el siguiente code al tu swf del reprouductor en mi caso la instancia del componente se llama distinto.

Código ActionScript :

this.addEventListener(Event.REMOVED_FROM_STAGE, onRemoved);

//cuando este swf sea removido del stage "main" o "principal" 
function onRemoved(evt:Event):void
{
   removeEventListener(Event.REMOVED_FROM_STAGE, onRemoved);
   videoPlayBack.stop();
   videoPlayBack = null;    
}


tambien podrias igualar a null , varios objetos como el Loader,Request..etc, esto con la finalidad de optimizar la aplicacion y liberar la memoria utilizada , si tienes duda sobre esos eventos recuerda que f1 es el mejor profesor. Espero te sirva , saludos.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

opera
Citar            
MensajeEscrito el 02 Ene 2010 10:58 am
Muchisimas gracias jonathan, que ayuda me has dado, que gracias a ella, he podido casi acabar mi primera web en as3.
ahora me queda una duda que me hago un lio y son las siguientes:
¿la palabra "this", a que hace mención normalmente, al lugar en la linea de tiempo o al objeto que se esta nombrando?
y la segunda, observo que muchos parametros de las funciones son e: , o evt o event, cuando uno y cuando o es otro, o quizas a ser el nombre del tipo de parametro que se le da a la funcion , da igual como se llame?


un saludo y feliz año

Por currodelatajadera

33 de clabLevel



 

msie8
Citar            
MensajeEscrito el 04 Ene 2010 11:01 pm
hola,
1. this hace referencia al objeto, depende del contexto en que lo utilices puedes estarte refiriendo a distintos objetos ejemplo:
código en la linea de tiempo principal

Código ActionScript :


this.clip.addEventListener(Event.ENTER_FRAME, mifuncion);
function mifuncion(e:Event):void{

}
//this hace referencia a clip, que esta en la linea de tiempo principal

código en un fotograma interno de un movieclip

Código ActionScript :

this.btn_mc.clip.addEventListener(Event.ENTER_FRAME, mifuncion);
function mifuncion(e:Event):void{

}
//this hace referencia a clip, que esta dentro de btn_mc que a su vez esta dentro de el movieclip 


2. en esos casos estas declarando una funcion, como cualquiera :P, osea que el parámetro, sea e, evt o event, es una variable
por eso a veces se refieren a esa variable como evt.target.data, etc, es una simple variable, puede tener el nombre que quieras :D
Hasta Luego!

Por hormy1

Claber

124 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Ene 2010 11:49 pm
ACLARADO, muchas gracias.

Por currodelatajadera

33 de clabLevel



 

firefox

 

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