Вот она, заключительная часть нашего видео урока! Все, что нам нужно сделать сейчас, — это заставить индикатор времени работать, добавить нашу функцию нажатия кнопки «Домой», расположить и изменить размер текущего видео, а также заполнить показанную панель видео и его скруббер. Давайте начнем!
Шаг 1: видео время
Сначала нам нужно добавить слушателя на сцену с именем videoTimeEnterFrame, которая обновляет время видео в каждом кадре. Добавьте эту строку в функцию videoItemClick.
1
|
stage.addEventListener(Event.ENTER_FRAME, videoTimeEnterFrame);
|
Теперь давайте добавим функцию videoTimeEnterFrame.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
function videoTimeEnterFrame(event:Event):void
{
var totalSeconds:Number = ns.time;
var totalSeconds2:Number = duration;
var minutes:Number = Math.floor(totalSeconds / 60);
var minutes2:Number = Math.floor(totalSeconds2 / 60);
var seconds = Math.floor(totalSeconds) % 60;
var seconds2 = Math.floor(totalSeconds2) % 60;
if(seconds < 10) // if the seconds variable is less than 10 then…
{
seconds = «0» + seconds;
}
if(seconds2 < 10) // if the seconds2 variable is less than 10 then…
{
seconds2 = «0» + seconds2;
}
videoTimeTxt.text = minutes + «:» + seconds + » / » + minutes2 + «:» + seconds2;
}
|
Шаг 2: Домашняя кнопка
Добавление прослушивателя для кнопки «Домой» позволит нам вернуться на верхний уровень текущей галереи, в которой мы находимся. Добавьте это в начало нашего кода ниже наших других функций, которые мы имеем при запуске.
1
|
homeBtn.addEventListener(MouseEvent.CLICK, homeBtnClick);
|
Шаг 3: функция homeBtnClick
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
function homeBtnClick(event:MouseEvent):void
{
if(currentGallery == 0) // if currentGallery variable is equal to 0
{
Tweener.addTween(container_mc, {alpha:0, time:.5, transition:»easeOut», onComplete:removeGallery0});
}
if(currentGallery == 1)
{
Tweener.addTween(container_mc, {alpha:0, time:.5, transition:»easeOut», onComplete:removeGallery1});
}
if(currentGallery == 2)
{
Tweener.addTween(container_mc, {alpha:0, time:.5, transition:»easeOut», onComplete:removeGallery2});
}
}
|
Проверьте свой фильм, нажмите на галерею, чтобы увидеть список видео. Теперь нажмите кнопку домой. Теперь ваш проигрыватель исчезнет с текущих видео и заменит их на элементы текущей категории.
Шаг 4:
Чтобы установить videoWidth & videoHeight, нам нужно добавить код, чтобы сначала получить значения. Нам нужно добавить этот код в функцию videoItemClickFunction над строкой ns.play.
1
2
3
4
|
videoWidth = xml.GALLERY[currentGallery].CATEGORY[categoryItemName].ITEM[videoItemName].file_width;
videoHeight = xml.GALLERY[currentGallery].CATEGORY[categoryItemName].ITEM[videoItemName].file_height;
video.width = videoWidth;
video.height = videoHeight;
|
Шаг 5: позиционирование видео слушателя и функции
Теперь у нас есть видео с правильной шириной и высотой. Последнее, что нужно сделать, это расположить его посередине области просмотра. Добавьте эту строку в функцию videoItemClickFunction над строкой ns.play (currentVideo): void.
1
|
positionVideo();
|
Затем добавьте функцию для обработки события positionVideo.
1
2
3
4
5
6
7
8
9
|
function positionVideo():void
{
video.x = 0;
video.y = 0;
var vidWidthDif = videoBlackBox.width — videoWidth;
var vidHeightDif = videoBlackBox.height — videoHeight;
video.x = vidWidthDif / 2;
video.y = vidHeightDif / 2;
}
|
Шаг 6: переместите ns.play еще раз
Вырежьте и вставьте эту строку в конец функции positionVideo.
1
|
ns.play(currentVideo);
|
Теперь, если вы протестируете свой файл, у вас будет видео, получит ширину и высоту, которые мы установили в XML, и изменим его размеры, а затем воспроизведите видео.
Шаг 7: Добавьте переменные избранного элемента
Эти переменные будут создавать и хранить наши избранные элементы в мувиклипе.
1
2
3
|
var featuredContainer:MovieClip;
var featuredThumbLoader:Loader;
var featuredItemName;
|
Шаг 8: Избранные видео
Чтобы проверить избранные видеоролики в xml, добавьте этот код в функцию myXmlLoaded. Он будет перебирать все видео и возвращать те, которые установлены в true.
1
|
checkForFeaturedVids();
|
Шаг 9: функция checkForFeaturedVids
Эта функция аналогична функции makeGalleryItems, которую мы создали во второй части . Мы создадим мувиклипы featuredItem для featuredContainer на основе xml, разместим их и разместим их правильно, загрузим в миниатюру изображения и удалим предварительный загрузчик с помощью отдельной функции ниже.
Примечание редактора: Ну, вот и мы. Те из вас, кто использует FireFox, обнаружили бы, что страница зависла благодаря этому маленькому блоку ActionScript. Чтобы все шло гладко, вот код для скачивания. Приносим извинения за неудобства.
Шаг 10: Нажмите Слушатель
Теперь нам нужно настроить прослушиватель для обработки того, что происходит, когда мы щелкаем по мувиклипу выбранного элемента. Добавьте эту строку в оператор if в функции checkForFeaturedVids под слушателями myFeaturedItems btnOver & btnOut.
1
|
myFeaturedItem.addEventListener(MouseEvent.CLICK, myFeaturedItemClick);
|
Шаг 11: функция myFeaturedItemClick
Вот что происходит, когда мы щелкаем по выбранному элементу:
01
02
03
04
05
06
07
08
09
10
11
12
|
function myFeaturedItemClick(event:MouseEvent):void
{
featuredItemName = event.target.name;
currentVideo = xml.GALLERY.CATEGORY.ITEM.file_path[featuredItemName];
videoTitleTxt.text = xml.GALLERY.CATEGORY.ITEM.file_title[featuredItemName];
videoWidth = xml.GALLERY.CATEGORY.ITEM.file_width[featuredItemName];
videoHeight = xml.GALLERY.CATEGORY.ITEM.file_height[featuredItemName];
video.width = videoWidth;
video.height = videoHeight;
positionVideo();
stage.addEventListener(Event.ENTER_FRAME, videoTimeEnterFrame);
}
|
Шаг 12: Избранные переменные полосы прокрутки
Сначала добавьте переменную для хранения имен коротких имен мувиклипов.
1
2
3
4
5
6
7
|
var featuredScrollTrack:MovieClip = featuredBox_mc.featuredScrollbar_mc.featuredScrollbarTrack_mc;
var featuredScrollThumb:MovieClip = featuredBox_mc.featuredScrollbar_mc.featuredScrollbarThumb_mc;
var featuredScrollMask:MovieClip = featuredBox_mc.featuredScrollbar_mc.featuredMasker_mc;
var xOffset:Number;
var xMin:Number = 0;
var xMax:Number;
var featuredThumbDif:Number;
|
Шаг 13: Избранные слушатели кнопки слайдера
Затем добавьте эти строки в начало нашего кода ниже других слушателей, которые запускаются при открытии файла.
1
2
3
4
|
featuredScrollThumb.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
featuredScrollThumb.addEventListener(MouseEvent.MOUSE_OUT, btnOut);
featuredScrollThumb.buttonMode = true;
featuredScrollThumb.mouseChildren = false;
|
Шаг 14: проверьтеFeaturedContainerWidth
Здесь мы будем делать что-то очень похожее на функцию checkFeaturedContainerWidth во второй части.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function checkFeaturedContainerWidth():void
{
if(featuredContainer.width > featuredScrollMask.width)
{
linkFeaturedScroller();
featuredScrollThumb.addEventListener(MouseEvent.MOUSE_DOWN, featuredScrollbarThumbDown);
stage.addEventListener(MouseEvent.MOUSE_UP, featuredScrollbarThumbUp);
featuredScrollThumb.visible = true;
featuredScrollThumb.alpha = 0;
Tweener.addTween(featuredScrollThumb, {alpha:1, time:.5, transition:»easeOut»});
}
else
{
featuredScrollThumb.removeEventListener(MouseEvent.MOUSE_DOWN, sideScrollbarThumbDown);
stage.removeEventListener(MouseEvent.MOUSE_UP, featuredScrollbarThumbUp);
Tweener.addTween(featuredScrollThumb, {alpha:0, time:.5, transition:»easeOut», onComplete:hideFeaturedScrollbarThumb});
}
}
function hideFeaturedScrollbarThumb():void
{
featuredScrollThumb.visible = false;
}
|
Шаг 15: Функции
Добавьте функции для работы со слушателями в функцию checkFeaturedContainerWidth.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
function linkFeaturedScroller():void
{
featuredScrollThumb.x = 0;
featuredContainer.mask = featuredScrollMask;
xMax = featuredScrollTrack.width — featuredScrollThumb.width;
}
function featuredScrollbarThumbDown(event:MouseEvent):void
{
featuredScrollThumb.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
featuredScrollThumb.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
stage.addEventListener(MouseEvent.MOUSE_MOVE, featuredScrollbarThumbMove);
xOffset = mouseX — featuredScrollThumb.x;
}
function featuredScrollbarThumbUp(event:MouseEvent):void
{
featuredScrollThumb.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
featuredScrollThumb.addEventListener(MouseEvent.MOUSE_OUT, btnOut);
featuredScrollThumb.gotoAndStop(«over»);
Tweener.addTween(featuredContainer, {_Blur_blurX:0, time:1, transition:»easeOut»});
stage.removeEventListener(MouseEvent.MOUSE_MOVE, featuredScrollbarThumbMove);
}
function featuredScrollbarThumbMove(event:MouseEvent):void
{
featuredScrollThumb.x = mouseX — xOffset;
if(featuredScrollThumb.x <= xMin)
{
featuredScrollThumb.x = xMin;
}
else if(featuredScrollThumb.x >= xMax)
{
featuredScrollThumb.x = xMax;
}
featuredThumbDif = featuredScrollThumb.x / xMax;
Tweener.addTween(featuredContainer, {x:((-featuredThumbDif * (featuredContainer.width — featuredScrollMask.width)) + 25), _Blur_blurX:5, time:1, transition:»easeOut»});
event.updateAfterEvent();
}
|
Вывод
Итак, у вас это есть, похлопайте себя по спине, если вы закончили, и начните размещать несколько видео в Интернете!
Я надеюсь, что вам понравился этот урок, и я надеюсь, что вы узнали несколько вещей, которые вы можете использовать в своих собственных проектах. Если кто-то захочет посмотреть 4-й учебник, я сделаю так, чтобы игрок получил полноэкранные функции. Дай мне знать в комментариях. Спасибо за прочтение!