Доброго времени суток! Предлагаю метод формирования playlist'a через xml файл. Сразу оговорюсь playlist к плееру прикручен с боку. Пример структуры xml файла, который описывает playlist для плеера: | Код | <data> <item url="C:\1.flv" label="Первое видео" time ="4:02" /> <item url="D:\flash\2.flv" label="Второе видео" time ="5:11" /> </data>
|
Для загрузки xml плейлиста в первый кадр флешки вставлен код: (можно зациклить на ожидание, чтобы не создавать первый кадр): | Код | // Загрузка xml файла
System.useCodepage = false; // для того, чтобы флешка могла работать с кириллическими символами
// останавливка флешки на первом кадре, и ожидание загрузки xml-файла // после загрузки перевод флешки на второй кадр, где находится видео-плеер stop(); playlist = new XML(); playlist.ignoreWhite = true; playlist.onLoad = function() { _root.gotoAndStop(2); }
playlist.load("playlist.xml"); // путь к xml файлу
|
Дальше из второго кадра: | Код | // Формирование playlist'a
// Инициализация playlist'a yy = 5; // размещение элементов playlist'a будет от 5 dif = 3; // расстояние по высоте между элементами в списке url = []; // массив для хранения ссылок на видео
// перебир элементов xml файла для playlist'a for (i=0; i<playlist.firstChild.childNodes.length; i++) { // Формирование playlist'a mc = _root.pl.container.attachMovie('item', 'item'+i, i); // в список воспрозведения из библиотеки добавляем мувиклип item mc._x = 5; // сдвиг по оси _x mc._y = yy; // новая координата по _y yy += mc._height+dif; // считаем координаты для следующего элемента плей-листа dataHolder = playlist.firstChild.childNodes[i]; // в каждый элемет плейлиста (списка) пишем несколько переменных, которые хранятся в xml файле плейлиста mc.label = dataHolder.attributes.label; // название видео mc.time = dataHolder.attributes.time; // продожительность видео url[i] = dataHolder.attributes.url; // массив путей к flv видео файлам mc.i = i; // в каждый пункт списка пишем его номер mc.playing = false; // булева величина (false значит, что текущее данное видео не проигрывается в данный момент) }
// кодим полосу прокрутки[скроллер] playlist'a (для того, чтобы текст в динамических полях отображался, нужно применить маску) pl.container.setMask(pl.m); // применение маски // если список умещается в контейнер playlist'a, то полоса прокрутки нам не нужена if (pl.container._height < pl.m._height) { scroll._visible = false; // если это так, скрываем скроллер } // если скроллер нам всё-таки нужен. // при нажатии на ползунок scroll.bar.onPress = function() { // начинаем его перетаскивать от самого верху (0) до низа-выоста ползунка scroll.bar.startDrag(false, 4, 0, 4, scroll._height-scroll.bar._height); // при движении курсора scroll.onMouseMove = function () { // двигаем контейнер со списком воспроизведения на нужное расстояние pl.container._y = 0-((pl.container._height-pl.m._height+10) * scroll.bar._y / (scroll._height-scroll.bar._height)); } } // когда пользователь отпускает кнопку мыши, нужно остановить движение ползунка scroll.bar.onRelease = scroll.bar.onReleaseOutside = function() { scroll.bar.stopDrag(); } // конец формирования плейлиста и скроллера
// инициализация проигрывания isPlaying = null; // номер видео, которое играет плеер в данный момент
// на вход принимается номер мувика, видео в котором нужно проиграть function playVideo(numb) { // переводим активный элемент плейлиста в неактивное состояние _root.pl.container['item'+isPlaying].fon.gotoAndStop(1); isPlaying = numb; // переменной isPlaying присваиваем номер текущего видео // переводим в активное состояние элемент плейлиста, по которому кликнули, // который ссылается на видео, которое плеер воспроизводит в данный момент _root.pl.container['item'+isPlaying].fon.gotoAndStop(2); } // воспроизводим видео под номером numb,который передаётся при вызове функции playVideo берём ссылку на flv файл из массива url по индексу numb _root.my_ns.play(url[numb]); // это место где ты выполняешь: var url:String = "movie_1.flv";
|
Надеюсь поможет или хотя бы подталкнет на умную мысль. =) P.S. Не мог бы ты выложить последний вариант архива со скриптом ку да ни будь, сам очень интересуюсь этой темой. Заранее благодарен.
|