Créer un lecteur vidéo dynamique avec ActionScript 3 Partie 3 de 3

Voici la dernière partie de notre didacticiel sur les lecteurs vidéo! Tout ce que nous avons à faire maintenant, c’est de faire en sorte que l’indicateur de temps fonctionne, d’ajouter notre fonction de clic sur le bouton d’accueil, de positionner et de dimensionner la vidéo en cours, et de remplir la barre en vedette de vidéos avec son défilement. Commençons!




Étape 1: Heure de la vidéo

Nous devons d’abord ajouter à la scène un écouteur appelé videoTimeEnterFrame qui met à jour l’heure de la vidéo à chaque image. Ajouter cette ligne à la fonction videoItemClick.

 stage.addEventListener (Event.ENTER_FRAME, videoTimeEnterFrame); // lance cette fonction chaque fois que nous entrons dans un nouveau cadre

Ajoutons maintenant la fonction videoTimeEnterFrame.

 function videoTimeEnterFrame (event: Event): void var totalSeconds: Number = ns.time; // variable pour contenir le ns.time var totalSeconds2: Number = duration; // variable pour contenir la durée var minutes: Number = Math.floor (totalSeconds / 60); // variable permettant de diviser le totalSeconds arrondi par 60 var minutes2: Number = Math.floor (totalSeconds2 / 60); // variable pour contenir le total arrondi vers le bas totalSeconds2 divisé par 60 var secondes = Math.floor (totalSeconds)% 60; // variable pour obtenir 60% du totalSeconds var seconds2 = Math.floor (totalSeconds2)% 60; // variable pour obtenir 60% du totalSecond2 if (secondes < 10) // if the seconds variable is less than 10 then…  seconds = "0" + seconds; // the seconds variable is equal to 0:seconds  if(seconds2 < 10) // if the seconds2 variable is less than 10 then…  seconds2 = "0" + seconds2; // the seconds2 variable is equal to 0:seconds  videoTimeTxt.text = minutes + ":" + seconds + " / " + minutes2 + ":" + seconds2; // update the videoTimeTxt field with the total time and current time. 

Étape 2: Bouton d'accueil

Ajouter l’auditeur de clic pour le bouton principal nous permettra de revenir au niveau supérieur de la galerie actuelle. Ajoutez ceci au haut de notre code en dessous de nos autres fonctions que nous avons au démarrage.

 homeBtn.addEventListener (MouseEvent.CLICK, homeBtnClick); // écouteur lorsque l'utilisateur clique sur le bouton d'accueil

Étape 3: Fonction homeBtnClick

 fonction homeBtnClick (event: MouseEvent): void if (currentGallery == 0) // si la variable currentGallery est égale à 0 Tweener.addTween (conteneur_mc, alpha: 0, heure: .5, transition: "aisance", onComplete : removeGallery0); // interpole le conteneur_mc et exécute la fonction removeGallery0 if (currentGallery == 1) Tweener.addTween (conteneur_mc, alpha: 0, heure: .5, transition: "aisance", onComplete: removeGallery1);  if (currentGallery == 2) Tweener.addTween (conteneur_mc, alpha: 0, heure: .5, transition: "aisance", onComplete: removeGallery2); 

Testez votre film, cliquez sur une galerie pour voir la liste des vidéos. Maintenant, cliquez sur le bouton d'accueil. Votre lecteur va maintenant effacer les vidéos actuelles et les remplacer par les éléments de la catégorie actuelle.

Étape 4:

Pour définir videoWidth & videoHeight, nous devons ajouter du code pour obtenir d’abord les valeurs. Nous devons ajouter ce code à la fonction videoItemClickFunction au-dessus de la ligne ns.play.

 videoWidth = xml.GALLERY [currentGallery] .CATEGORY [categoryItemName] .ITEM [videoItemName] .file_width; // récupère la largeur de la vidéo à partir du xml videoHeight = xml.GALLERY [currentGallery] .CATEGORY [categoryItemName] .ITEM [videoItemName] .file_height; // obtient la hauteur de la vidéo à partir du xml video.width = videoWidth; // définit la largeur de la vidéo sur la variable videoWidth video.height = videoHeight; // définit la hauteur de la vidéo sur la variable videoHeight

Étape 5: ListVideo Listener & Function

Nous avons maintenant la vidéo réglée sur la largeur et la hauteur correctes. La dernière chose à faire est de le positionner au milieu de la zone de visualisation. Ajoutez cette ligne à la fonction videoItemClickFunction au-dessus de la ligne ns.play (currentVideo): void.

 positionVideo ();

Ajoutez ensuite la fonction pour gérer l'événement positionVideo.

 fonction positionVideo (): void video.x = 0; // définit le x de la vidéo sur 0 video.y = 0; // définit la y sur 0 pour la vidéo var vidWidthDif = videoBlackBox.width - videoWidth; // récupère la différence entre la largeur de videoBlackBox et la largeur de la vidéo - conservez-la dans cette variable var vidHeightDif = videoBlackBox.height - videoHeight; // récupère la différence entre la hauteur de la videoBlackBox et la hauteur de la vidéo - conservez-la dans cette variable video.x = vidWidthDif / 2; // positionne la vidéo x de la vidéo.y = vidHeightDif / 2; // positionne la vidéo y

Étape 6: déplacez le ns.play une fois de plus

Couper et coller cette ligne au bas de la fonction positionVideo.

 ns.play (currentVideo);

Maintenant, si vous testez votre fichier, la vidéo obtiendra la largeur et la hauteur définies dans le code XML et changera ses dimensions, puis lira la vidéo..

Étape 7: Ajouter des variables d'élément en vedette

Ces variables créeront et maintiendront nos articles en vedette dans un MovieClip.

 var en vedetteContainer: MovieClip; // crée un nouveau MovieClip pour contenir les éléments de la vidéo en vedette var selectedThumbLoader: Loader; // crée un nouveau chargeur pour charger les vidéos présentées var featureItemName; // crée une nouvelle variable selectedItemName pour contenir le nom de l'élément présenté sur lequel nous allons cliquer

Étape 8: Vidéos en vedette

Afin de rechercher les vidéos en vedette dans le fichier XML, ajoutez ce code à la fonction myXmlLoaded. Il passera en boucle dans toutes les vidéos et retournera celles qui sont définies sur true.

 checkForFeaturedVids (); // lance cette fonction quand le XML est chargé

Étape 9: Fonction checkForFeaturedVids

Cette fonction est identique à la fonction makeGalleryItems que nous avons configurée dans la partie 2. Nous allons créer les MovieClips de FeatureItem pour le conteneur FeaturedContainer en fonction du fichier XML, les disposer et les espacer correctement, le charger dans la vignette et supprimer le préchargeur à l’aide d’un fichier séparé. fonction ci-dessous.

Note de l'éditeur: Et bien, nous y revoilà… Ceux qui utilisaient FireFox auraient trouvé la page gelée grâce à ce petit bloc d’ActionScript. Pour que tout fonctionne correctement, voici le code à télécharger. Désolé pour le dérangement.

Étape 10: Cliquez sur l'auditeur

Nous devons maintenant définir un auditeur pour gérer ce qui se passe lorsque nous cliquons sur un élément sélectionné. Ajoutez cette ligne à l'instruction if dans la fonction checkForFeaturedVids sous les écouteurs myFeaturedItems btnOver & btnOut.

 myFeaturedItem.addEventListener (MouseEvent.CLICK, myFeaturedItemClick);

Étape 11: fonction myFeaturedItemClick

Voici ce qui se passe lorsque nous cliquons sur un élément présenté:

 function myFeaturedItemClick (event: MouseEvent): void FeaturedItemName = event.target.name; // récupère l'élément en cours et le définit sur la variable selectedItemName currentVideo = xml.GALLERY.CATEGORY.ITEM.file_path [FeaturedItemName]; // définit notre variable currentVideo sur la vidéo sélectionnée dans le fichier XML videoTitleTxt.text = xml.GALLERY.CATEGORY.ITEM.file_title [FeaturedItemName]; // définition du nom du titre vidéo videoWidth = xml.GALLERY.CATEGORY.ITEM.file_width [FeaturedItemName]; // récupère la largeur de la vidéo videoHeight = xml.GALLERY.CATEGORY.ITEM.file_height [FeaturedItemName]; // récupère la hauteur de la vidéo video.width = videoWidth; // définit la largeur de la vidéo video.height = videoHeight; // définit la hauteur de la vidéo positionVideo (); // lance cette fonction stage.addEventListener (Event.ENTER_FRAME, videoTimeEnterFrame); // changer le temps de lecture vidéo

Étape 12: Variables de la barre de défilement en vedette

Ajoutez d'abord une variable pour contenir les noms des noms abrégés de MovieClips.

 var selectedScrollTrack: MovieClip = FeaturedBox_mc.featuredScrollbar_mc.featuredScrollbarTrack_mc; var selectedScrollThumb: MovieClip = FeaturedBox_mc.featuredScrollbar_mc.featuredScrollbarThumb_mc; var selectedScrollMask: MovieClip = FeaturedBox_mc.featuredScrollbar_mc.featuredMasker_mc; var xOffset: Number; var xMin: Number = 0; var xMax: Number; var selectedThumbDif: Number;

Étape 13: Auditeurs en vedette du bouton de curseur

Ajoutez ensuite ces lignes en haut de notre code sous les autres écouteurs qui commencent lorsque le fichier est ouvert..

 selectedScrollThumb.addEventListener (MouseEvent.MOUSE_OVER, btnOver); selectedScrollThumb.addEventListener (MouseEvent.MOUSE_OUT, btnOut); selectedScrollThumb.buttonMode = true; selectedScrollThumb.mouseChildren = false;

Étape 14: checkFeaturedContainerWidth

Ici, nous allons faire quelque chose de très similaire à la fonction checkFeaturedContainerWidth de la partie 2.

 function checkFeaturedContainerWidth (): void if (sélectionnéeContainer.width> sélectionnéeScrollMask.width) linkFeaturedScroller (); sélectionnéeScrollThumb.addEventListener (MouseEvent.MOUSE_DOWN, sélectionnéeScrollbarThumbDown); stage.addEventListener (MouseEvent.MOUSE_UP, selectedScrollbarThumbUp); selectedScrollThumb.visible = true; sélectionnéeScrollThumb.alpha = 0; Tweener.addTween (selectedScrollThumb, alpha: 1, heure: .5, transition: "aisance");  else FeaturedScrollThumb.removeEventListener (MouseEvent.MOUSE_DOWN, sideScrollbarThumbDown); stage.removeEventListener (MouseEvent.MOUSE_UP, selectedScrollbarThumbUp); Tweener.addTween (selectedScrollThumb, alpha: 0, heure: .5, transition: "aisance", onComplete: hideFeaturedScrollbarThumb);  function hideFeaturedScrollbarThumb (): void FeaturedScrollThumb.visible = false; 

Étape 15: Fonctions

Ajoutez les fonctions à utiliser avec les écouteurs dans la fonction checkFeaturedContainerWidth.

 function linkFeaturedScroller (): void FeaturedScrollThumb.x = 0; selectedContainer.mask = selectedScrollMask; xMax = selectedScrollTrack.width - selectedScrollThumb.width;  function FeatureScrollbarThumbDown (événement: MouseEvent): void FeaturedScrollThumb.removeEventListener (MouseEvent.MOUSE_OVER, btnOver); selectedScrollThumb.removeEventListener (MouseEvent.MOUSE_OUT, btnOut); stage.addEventListener (MouseEvent.MOUSE_MOVE, selectedScrollbarThumbMove); xOffset = mouseX - selectedScrollThumb.x;  function FeatureScrollbarThumbUp (événement: MouseEvent): void FeaturedScrollThumb.addEventListener (MouseEvent.MOUSE_OVER, btnOver); selectedScrollThumb.addEventListener (MouseEvent.MOUSE_OUT, btnOut); selectedScrollThumb.gotoAndStop ("terminé"); Tweener.addTween (sélectionnéeContainer, _Blur_blurX: 0, heure: 1, transition: "aisanceOut"); stage.removeEventListener (MouseEvent.MOUSE_MOVE, selectedScrollbarThumbMove);  function vedetteScrollbarThumbMove (événement: MouseEvent): void FeaturedScrollThumb.x = mouseX - xOffset; if (selectedScrollThumb.x <= xMin)  featuredScrollThumb.x = xMin;  else if(featuredScrollThumb.x >= xMax) FeaturedScrollThumb.x = xMax;  selectedThumbDif = selectedScrollThumb.x / xMax; Tweener.addTween (FeaturedContainer, x: (- FeaturedThumbDif * (FeaturedContainer.width - FeaturedScrollMask.width)) + 25), _Blur_blurX: 5, heure: 1, transition: "aisance",); event.updateAfterEvent (); 

Conclusion

Alors voilà, donnez-vous une tape dans le dos si vous avez fini et commencez à mettre des vidéos sur le web!

!