Flvplayer+xml+txt dynamique+tilelist+uiloader

Soyez le premier à donner votre avis sur cette source.

Vue 9 340 fois - Téléchargée 1 232 fois

Description

flvplayer+xml+txt dynamique+tilelist+uiloader

le voilà enfin, le player avec le xml externe, et d'autres composants, on ne s'attardera pas sur le graphisme!! mais sur le contenu, enfin voilà!! a vous de jouer, esperant ainsi repondre a vos attentes...
Pour etre sûr de le voir fonctionner utilisez votre serveur local(wamp ou easyphp ou autre!)

Source / Exemple :


import fl.video.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
import fl.controls.UIScrollBar;
import fl.controls.*;
import fl.events.ListEvent;
import fl.data.*;
//-------------le player----------------------
var vid = new FLVPlayback();
vid.x = 10;
vid.y =205;
vid.width=180;
vid.height= 135;
addChild(vid);
//////////////////////////////////////////////////////////
//-----------le xml---------------------------------
//les variables pour le xml:
var xml:XML;
var videosXML:XMLList;
var getvideo:URLRequest;
var pos:Number;
var currentIndex:Number = 0;
var currentvideo:FLVPlayback = vid;
//chargement du xml--------------
var uldr = new URLLoader();
uldr.addEventListener(Event.COMPLETE, xmlComplet);
uldr.load(new URLRequest('playlist.xml'));

//creation et lecture xml executée 
//lorsque la playlist.xml est bien chargé
function xmlComplet(event:Event):void 
	{
			xml = new XML(event.target.data);
			videosXML = xml.videos;
			getvideo=new URLRequest(videosXML[currentIndex].url);
//on indique au txt et au player quelle source ils devront utiliser
//au demarrage de l'animation (videosXML, index[0]et la balise qui leur est destinée) 
			vid.source= videosXML[currentIndex].url;
			txt.text = videosXML[currentIndex].titre;
			synopsis.text= videosXML[currentIndex].histoire;
			jacquette.source=videosXML[currentIndex].image;
			
	scrollb.update();
//--------------------Fonction video suivante-------------------------
// enchaine la video suivante
vid.addEventListener(Event.COMPLETE, video_suivante);
function video_suivante(e:Event):void
{
	if (currentIndex < (videosXML.length() - 1))
	{
		currentIndex++;
	}
	else
	{
		currentIndex = currentIndex;
	}
		var suivantReq:URLRequest = new URLRequest(videosXML[currentIndex].url);
		vid.source=videosXML[currentIndex].url;
		txt.text = videosXML[currentIndex].titre;
		synopsis.text= videosXML[currentIndex].histoire;
		jacquette.source=videosXML[currentIndex].image;
}
/////////////////////////////////////////////////////////////
// là, on rajoute la list et son data provider
var provider:DataProvider =new DataProvider(xml);
	
	var list:List = new List();
		list.dataProvider=provider;
		list.allowMultipleSelection=false;
		list.rowHeight=20;
		list.width= 300;
		list.rowCount=3;
		list.x=5;
		list.y=140;
//ici le label de la list(ce que l'on lira dedans)
		list.labelFunction = listexml;
	function listexml(obj:Object):String 
{
    return obj.titre;
}

		addChild(list);

//----------FIN  LIST---------------------------------------
////////////////////////////////////////////////////////////
//--------fonction de la LIST -------------------------------
//par CLICK
list.addEventListener(ListEvent.ITEM_CLICK ,select);
function select(evt:ListEvent):void
	{		videosXML = xml.videos;
			getvideo=new URLRequest(videosXML[currentIndex].url);
			var currentIndex:Number = list.selectedIndex;
			vid.source=videosXML[currentIndex].url;
			txt.text = videosXML[currentIndex].titre;
			synopsis.text= videosXML[currentIndex].histoire;
			jacquette.source=videosXML[currentIndex].image;
	
			scrollb.update();	
	}

///////////////////////////////////////////////////////////
// avec 'trace' on verifie que notre xml se charge bien
			trace(videosXML.url)
	}

//-------------------fin du xml-------------------------------
////////////////////////////////////////////////////////////////
//---------les commandes du player---------------------------
// on attache les boutons avec le player
vid.volumeBar= vol;
vid.fullScreenButton= full;
vid.fullScreenTakeOver = true;
vid.playButton= butplay;
vid.pauseButton=butpause;
vid.stopButton=butstop;
vid.muteButton= mute;
// on attache la barre de buffer et celle du seekbar au player
vid.bufferingBar=buffer;
vid.seekBar=seekb;
butplay.visible=false;
butpause.visible=true;

//comportement des boutons play pause stop
butplay.addEventListener(MouseEvent.CLICK, jouer);
function jouer(event:MouseEvent):void
 { 	butplay.visible=false;
 	butpause.visible=true;
}
butpause.addEventListener(MouseEvent.CLICK, pauses);
function pauses(event:MouseEvent):void
 { 	butplay.visible=true;
 	butpause.visible=false;
}
butstop.addEventListener(MouseEvent.CLICK, arret);
function arret(event:MouseEvent):void
 { 	butplay.visible=true;
 	butpause.visible=false;
}
//---------Avant  Apres----------------
avant.addEventListener(MouseEvent.CLICK, vidprec); 
apres.addEventListener(MouseEvent.CLICK, vidsuiv);
//--pour aller a la video suivante---------
function vidsuiv(e:Event):void
	{	
//si currentIndex plus petit que la longueur du xml -1(pour etre avant la derniere video du xml)
	if (currentIndex < (videosXML.length() - 1))
	{	// donc currentIndex s'incrémente de 1
		currentIndex++;
	}
	else
	{	//sinon currentIndex revient a la premiere video du xml
		currentIndex = 0;
	}

	var suivReq:URLRequest = new URLRequest(videosXML[currentIndex].url);
	vid.source=videosXML[currentIndex].url;
	txt.text = videosXML[currentIndex].titre;
	synopsis.text= videosXML[currentIndex].histoire;
	jacquette.source=videosXML[currentIndex].image;
	
	scrollb.update();
	//--------------------Fonction video suivante-------------------------
// enchaine la video suivante
vid.addEventListener(Event.COMPLETE, video_suivante);
function video_suivante(e:Event):void
{
	if (currentIndex < (videosXML.length() - 1))
	{
		currentIndex++;
	}
	else
	{
		currentIndex = currentIndex;
	}
		var suivantReq:URLRequest = new URLRequest(videosXML[currentIndex].url);
		vid.source=videosXML[currentIndex].url;
		txt.text = videosXML[currentIndex].titre;
		synopsis.text= videosXML[currentIndex].histoire;
		jacquette.source=videosXML[currentIndex].image;
}
/////////////////////////////////////////////////////////////
}
//--pour aller a la video precedente---------
function vidprec(e:Event):void
{
	if (currentIndex > 0)
	{
		currentIndex--;
	}
	else
	{
		currentIndex = videosXML.length() - 1;
	}

		
	var precReq:URLRequest = new URLRequest(videosXML[currentIndex].url);
	vid.source=videosXML[currentIndex].url;
	txt.text = videosXML[currentIndex].titre;
	synopsis.text= videosXML[currentIndex].histoire;
	jacquette.source=videosXML[currentIndex].image;
	
	scrollb.update();
//--------------------Fonction video suivante-------------------------
// enchaine la video suivante
vid.addEventListener(Event.COMPLETE, video_suivante);
function video_suivante(e:Event):void
{
	if (currentIndex < (videosXML.length() - 1))
	{
		currentIndex++;
	}
	else
	{
		currentIndex = currentIndex;
	}
		var suivantReq:URLRequest = new URLRequest(videosXML[currentIndex].url);
		vid.source=videosXML[currentIndex].url;
		txt.text = videosXML[currentIndex].titre;
		synopsis.text= videosXML[currentIndex].histoire;
		jacquette.source=videosXML[currentIndex].image;
}
/////////////////////////////////////////////////////////////
}
//------------Fin des commandes du player------------------

////////////////////////////////////////////////////////////
//-----------le texte synopsis et son scroll--------------
//appeler la scrollbar qui est dans la librairie
var scrollb:UIScrollBar = new UIScrollBar();
addChild(scrollb);

// cibler le champs de texte.
scrollb.scrollTarget = synopsis;

// adapter la scrollbar a la taille du text
scrollb.setSize(16, synopsis.height); 

// deplacement du text dans le champs de texte.
scrollb.move(synopsis.x + synopsis.width, synopsis.y);

	
vid.addEventListener(Event.COMPLETE, completeHandler);

function completeHandler(event:Event):void {
	synopsis.text = videosXML[currentIndex].histoire;
	scrollb.update();
}

Conclusion :


Beh eclatez-vous , vous avez dorenavant la possibilité d'utiliser le xml ainsi que les objet video!!
Bonne prog a tous!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
8 avril 2011

Hum, j'ai essayé mais l'erreur ne provient pas de là; dommage !
Merci en tout cas de ton temps de réponse ultra court !
En exportant en local, tout plante, en réseaux, c'est juste la liaison avec le xml qui ne fonctionne pas.
J'ai fait un système de quizz aujourd'hui (toujours avec du xml), et là, pareille, le module est lancé mais pas le xml. J'ai vérifié, en lançant une simple vidéo avec un système de flux, sa passe, donc c'est pas mon navigateur qu'est complétement fou, c'est mon xml.
C'est étrange que personne n'est jamais eu ce problème, j'ai cherché sur internet, et rien, nada !
Je dois vraiment être nul si je suis le seul être vivant qui ne peut pas lancer un player xml depuis firefox ...
Je trouverai bien une solution et si jamais c'est pas le cas, je tricherai un peu pour avoir une playlist sans xml !

Bonne soirée et bon week-end
Messages postés
40
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
11 janvier 2010

Hello Titamath, cela doit venir des paramètres de publication. Refais la publication en paramétrant flash en local et non pas en réseaux.
si ce n'est pas à cause de ça, revoit le chemin de ton xml, ainsi que les urls entrées dans le xml lui-même.
j'espère t'avoir répondu!!
à plus!
Messages postés
2
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
8 avril 2011

Bonjour,

Désolée de relancer la question qui a été évoqué par aslog, mais personnellement, j'ai un petit problème quand j'exécute le .swf depuis mon navigateur (j'utilise Mozilla et j'ai aussi essayer avec Explorer au cas ou); le player s'exécute, mais pas la playlist. A noté que j'ai retouché le code, adapter le xml qui ne viens plus chercher les sources depuis internet mais depuis un dossier vidéo dédié, mais cela ne change pas le problème car l'exécution de ton .swf présente lui aussi ce problème.
Je suis allé sur ton site et tu ne semble pas avoir ce problème, ce que je ne comprend pas ><* !

En gros, je crois juste que le xml n'est pas reconnu. C'est tout !
Quelqu'un aurait-il une idée d'ou peut venir le problème ?

Merci.
Cordialement, Kuroma.

PS : j'ai essayer d'appeler le .swf depuis une page html aussi mais bien évidement, même problème (faut pas rêver !).
Messages postés
40
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
11 janvier 2010

je préferais que l'on en parle sur mon site!! il est fait pour ça, malgré qu'il ne soit pas complètement fini, tu y retrouveras aussi les sources de différents flash!

à bientôt sur http://ini-media.net !
Messages postés
40
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
11 janvier 2010

J'ai oublié!!!

pour la List, elle n'est pas sur un calque, elle se trouve dans le code a partir de la ligne: 70

tu peux modifier ses coordonnées en x et y lignes 76 et 77

list.x=5;
list.y=140;

voili, voilou!! bonne prog!!
Afficher les 39 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.