TIPS OF FLASH: - MP3 плеер в одну строку Iv (dembicki@narod.ru) Спецвыпуск Xakep, номер #029, стр. 029-112-2 var mc = _root.attachMovie("play_box_mc", "play_box_mc", 0); mc.total = i-1; mc._x = 100; mc._y = 100; mc.showString(); } } else { trace("error opening URL"); } }; TIPS 5. Определяем длительность звучания Для того чтобы с секундомером в руках не вычислять длительность звучания песенок, мы функцией выведем эти значения в окно Output. Принцип таков: грузим все песенки по принципу эстафетной палочки: как только загрузилась одна, получаем данные о ее продолжительности и тут же грузим следующую. И так - пока не доберемся до конца описания. _root.getDurations = function() { _root.nod = _root.input_xml[++_root.id]; if (_root.nod == undefined) { delete _root.id; delete _root.nod; delete _root.test_sound; _root.duration_mc.removeMovieClip(); return; } delete _root.test_sound; var mc = _root.createEmptyMovieClip("duration_mc", 50); mc.test_sound = new Sound(); mc.test_sound.loadSound("music/"+_root.nod.attributes.url, false); mc.onEnterFrame = function() { var l = this.test_sound.getBytesLoaded(); var t = this.test_sound.getBytesTotal(); if (l/t == 1) { trace("\rfile:\t\t"+_root.nod.attributes.url); trace("duration:\t"+this.test_sound.duration); _root.getDurations(); } }; }; Как создашь XML описание, эту функцию нужно закомментировать, и компилировать окончательный вариант без нее. Можно закомментировать и те строки, которые осуществляют вызов этой функции. TIPS 6. Интерфейс проигрывателя Cразу после парсинга XML строкой var mc = _root.attachMovie("play_box_mc", "play_box_mc", 0); мы аттачим мувик "play_box_mc" из библиотеки. Создай пустой мувик, задай ему это имя и этот же linkage name. В этом мувике мы сделаем все кнопки и текстовое поле для отображения инфы о файле. Нарисуй кнопки управления. Вид твоих кнопок должен, соответственно, символизировать: 1. кнопка Play 2. кнопка Stop 3. ползунок Volume 4. кнопка Info 5. две кнопки перелистывания Шестой элемент - текстовое поле. Все кнопки в четвертом (Hit) кадре содержат квадрат 16x16, исключение - кнопки перелистывания в текстовом поле. Соответственно их тип - button (за исключением ползунка). Имена экземпляров слева направо: play_butt, stop_butt, volume_butt, ползунок к volume_butt - control_mc, info_butt, up_butt и down_butt и текстовое поле string_txt без имени переменной. Это все объекты, которые необходимо предварительно создать. TIPS 7. Кодинг Задавать скрипты мы будем в том же порядке, что и их расположение на сцене. Все скрипты будем писать в отдельном верхнем слое первого кадра мувиклипа, который содержит все эти объекты, - play_box_mc. Важный момент: к объектам и переменным в мувиклипе, содержащем кнопки, из этих кнопок можно обращаться двумя способами: первый - с использованием this. This будет явно указывать на кнопку, и тогда объекты в мувиклипе будут доступны по пути this._parent; второй способ - без указания this объекта, тогда объекты проигрыватель будет искать по местонахождению скрипта. В большинстве случаев я пошел по второму пути - так короче. Вначале изменим стандартное время предзагрузки звукового файла до 20 секунд. С учетом средней скорости наших сетей это полезно. |