Рассмотрим пример создания флеш проигрывателя для видео файлов, который можно установить на свой сайт, позволив посетителям сайта смотреть видео на сайте без скачивания при помощи технологии Adobe Flash, на языке actionscript 2. Обратите внимание, что flash плеер может воспроизводить видео только одно формата – flv. Плеер будет состоять из одного кадра. На сцене должны быть: 1) Видео-символ (myVideo). В свойствах нужно указать Video (actionscript controlled). 2) Кнопка или мувиклип, который будет останавливать воспроизведение (кнопка пауза). Instance name - p_btn. 3) Над этой кнопкой нужно разместить клипы – значки воспроизведения и паузы (play_btn и pause_btn). 4) Мувиклип vol, состоящий из двух мувиклипов – полосок, индикатор/регулятор громкости. На первом слое (нижнем) должен быть мувиклип fon, над ним – bar, идентичный по размеру, но другого цвета. 5) Клип progress_bar, похожий на клип vol. На нижнем слое клип fon, на среднем - flv_load, на самом высшем – bar. После того, как вы сделали оболочку плеера, вам остаётся только добавить в кадр код: stop(); // останавливаем воспроизведение // ставим ширину равной нулю (скрываем) индикаторы загрузки и позиции воспроизведения progress_bar.flv_load._width = 0; progress_bar.bar._width = 0; pause_btn._visible = false; // скрываем кнопку пауза //isPlaying - булева величина, которая показывает, идёт ли сейчас подгрузка видео isPlaying = false;
link = '1.flv';// ссылка на видео файл для воспроизведения (flv)
// нажатие на кноку play/pause p_btn.onRelease = function() { if (!isPlaying) {// если подгрузка вижео ещё не начиналась _root.nc = new NetConnection(); // экземпляр класса NetConnection _root.nc.connect(null); _root.my_ns = new NetStream(_root.nc);// экземляр класса NetStream setPlayBtn(false); // скрываем кнопку play, показываем кнопку pause // "прикрепляем" поток видео (класс NetStream) к видео-символу myVideo.attachVideo(_root.my_ns); _root.my_ns.play(link); // при получении данных о длительности видео _root.my_ns.onMetaData = function(infoObject:Object) { totalTime = infoObject.duration;//сохраняем в отдельную переменную }; // при завершении загрузки видео _root.my_ns.onStatus = function(info) { if (info.code == "NetStream.Play.Stop") { isPlaying = false; setPlayBtn(true); progress_bar.bar._width = 0; } } isPlaying = true; // значит, что видео начало подгружаться } else // если видео уже грузится if (pause_btn._visible) { // и если сейчас плеер не на паузе // ставим видео на паузу _root.my_ns.pause(true); // запоминаем позицию воспроизведения current = _root.my_ns.time; // скрываем кнопку pause, показываем кнопку play setPlayBtn(true); } else { // если плеер на паузе // перематываем видео на место, где остановились current = _root.my_ns.time; // и продолжаем воспроизведение _root.my_ns.pause(false); // скрываем кнопку play, показываем кнопку pause setPlayBtn(false); }
}
onEnterFrame = function() { if (isPlaying) { setBar(); } //считаем проценты, меняем ширину полоски - индикатора загрузки видео во flash плеер current = _root.my_ns.time; total = _root.my_ns.bytesTotal; // "вес" видео в байтах loaded = _root.my_ns.bytesLoaded; // количество загрженых байт percent = (loaded/total); // соотношение полного веса к загруженой части // в зависимости от загруженой части, меняем длину зелёной полоски - индикатора progress_bar.flv_load._width = (percent * progress_bar.fon._width);
} // setBar - функция, которая будет отображать прогресс вопроизведения видео в плеере // при вызове позиция передаётся как процент (от 0 до 100) function setBar(percent:Number) { if (percent == undefined) percent = Math.floor(_root.my_ns.time/totalTime*100); // меняем ширинц полоски-индикатора progress_bar.bar._width = (percent/100 * progress_bar.fon._width); }
// нажатие на полоску - индикатор загрузки // именно на этот индикатор, чтобы нельзы было перепрыгвать на незагруженные участки progress_bar.flv_load.onRelease = function() { // вызов функции scrubbing, которая отвечает за перемотку на нужный моммент времени scrubbing(Math.floor((progress_bar._xmouse*100)/progress_bar._width)); }
function scrubbing(p) { // функция для перемтоки видео isEnd = false; setPlayBtn(false); _root.my_ns.seek(p*totalTime/100); _root.my_ns.pause(false); }
// функция, которая показывает/прячет кнопки play и pause function setPlayBtn(b) { play_btn._visible = b; pause_btn._visible = !b; }
// создаём обьект класса Sound, который будет охватывать все звуки в фильме sound = new Sound(); // регулировка громкости vol.onRelease = function() { // клик по индикатору громкости vol.bar._width = vol._xmouse;// меняем ширину индикатора // меняем громость звука sound.setVolume(vol._xmouse/vol._width * 100);
На уровень излучения (SAR) в дешевых китайских телефонах не обращают никакого внимания, говорят эксперты. В Китае нет такого закона, который бы заставлял производителей телефонов измерять уровень вредного излучения по…
«Это было высокое сооружение из бронзы, красного дерева и слоновой кости, обнесенное перилами черного дерева... Предмет не был квадратным, не имел четких линий машины - контуры его словно расплывились... Такие машины …
Производство: США / DreamWorks AnimationГод выпуска: 2008-2010Жанр: КомедияРежиссер: Брет ХаландПеревод: Дублированный (ТНТ)Дата мировой премьеры: 29 ноября 2008Дата российской премьеры: 7 декабря 2009Продолжительность: серия ~ 00:11:55Сюжет…
Неполные семьи - сегодня уже реальность, на которую трудно закрыть глаза. Число их не только не снижается, но и имеет постоянную тенденцию к росту. Причины, по которым кто-то из родителей (в большинстве случаев мать)…
Год выхода на экран: 2010-2012Страна: РоссияСериал относится к жанру: МультсериалПостановщик Васико Бедошвили, Андрей Колпин, Владимир ПономарёвАктеры, принявшие участие в съемках: анимационные персонажи фиксикиКраткое…
Создание и вставка бегущих строк в HTML документБегущую строку можно применять, там где мало места. Например на главной (нуи других) страницах сайта, для анонсирования новостей или ещё чегоподобного.Бегущая строка…
Не обманывайтесь: Бог поругаем не бывает. Что посеет человек, то и пожнет.Гал. 6:7 Еще в глубокой древности в священных индусских Писаниях был дан ключ к раскрытию наиболее трудных загадок человеческой жизни.По учениям…
В данной инструкции пойдет речь о том как пробросить порты на модемах D-link на примере моделей серии 2XX0U (2500U, 2520U, 2540U, 2640U)Итак, имеем модем настроенный в режиме маршрутизатора (роутера).Заходим в веб-интерфейс модема.…
ПОЧТИ ВСЕ РОДИТЕЛИ СТАЛКИВАЮТСЯ С ПЛОХИМ ПОВЕДЕНИЕМ РЕБЕНКА К ДВУХГОДОВАЛОМУ ВОЗРАСТУ. КАК ТОЛЬКО МАЛЫШ НАЧИНАЕТ МОТАТЬ ГОЛОВОЙ В ЗНАК ОТРИЦАНИЯ И ОСВАИВАЕТ СЛОВО "НЕТ", ОН РЕАГИРУЕТ ОТКАЗОМ ПРАКТИЧЕСКИ НА ВСЕ. Эту…
В следyющее посещение центpа мне пpедставилась возможность пpосто побыть членом. Я был yкpыт плотной тканью с отвеpстиями, и только мой член и яйца были видны снаpyжи. Естественно, я сквозь дыpочки в ткани мог видеть…