Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #29, АПРЕЛЬ 2003 г.

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 секунд. С учетом средней скорости наших сетей это полезно.

Назад на стр. 029-112-1  Содержание  Вперед на стр. 029-112-3