Accueil > > > FLVPLAYER+XML+TXT DYNAMIQUE+TILELIST+UILOADER
FLVPLAYER+XML+TXT DYNAMIQUE+TILELIST+UILOADER
Information sur la source
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
- 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();
- }
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!
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
flash + video [ par jah2 ]
je cherche des infos sur lintegration de la video pour simuler un stream!! et suis aussi preeur dinfos sur mx communication server!! a fond !!si pass
Flash MX et la Video [ par laurentgraph ]
Bonjour à tous,J'aimerais intégrer plusieur séquence video sur un flash ???comment aller chercher ses fichier video sur mon serveur ???
video et scene 3d ?? [ par flashx ]
flashxvoila jaimerais mettre une scene video en numerique ds une scene 3d pur et dur je sais pas si vous comprenne !donc je voudrais insere un couple
video avec du son ! [ par Superioio ]
salutc'est pour un CD hybride MAC/PC. Je clic sur le bouton et voilà une vidéo qui joue. Mais comment avoir le son? ma source c'est un .mpg avec du so
video [ par canblanco ]
Salut,j'appelle une video dans mon animgetURL("javascript:flashvideo(224,149,352,200,\"acc_mag_dei.mpg\")");mais le problème et que lorsque ma video a
Insertion d'une video dans une anim Flash [ par ppfm ]
slt,j'ai un probleme en ce qui concerne l'insertion d'une video de 30secondes (fichier avi de 6Mo) dans l'animation Flash d'une page web.En effet, j'a
Preload qui passe directement à 100% et lecture video saccadé en projection [ par mysweethome ]
J'ai un gros souci très urgent, je vais essayer d'être claire (pas évident),Je suis entrain de crée une présentation d'entreprise sur CD-ROM avec flas
video + dessin aide STP [ par rich25200 ]
Bonjour,J'ai un très gros probleme..En faite je charge une video sous flash mx 2004 puis j'ai des bouton pour controler cette video... Pour l'instant
chargement de movies externe de gros volume (Video) [ par mag2 ]
salut à tous, voilà j'ai un petit soucis de temps de chargement d'une video externe et .swf de 65mo (je sais c'est lourd mais je peux pas faire autrem
video externe flv en boucle [ par f ]
Bonjour, est-ce qu'il est possible lorsque l'on fait appelle à une vidéo externe *.flv de la mettre en boucle?Et puis aussi est-ce que l'on peut cont
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|