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

TIPS OF FLASH: - MP3 плеер в одну строку

Iv (dembicki@narod.ru)

Спецвыпуск Xakep, номер #029, стр. 029-112-4


this.down_butt.onRelease = function() {

++id>total ? id=1 : "", showString();

};

this.up_butt.onRelease = function() {

--id<1 ? id=total : "", showString();

};

TIPS 13. Функция showString

Эта функция собирает, где только возможно, данные о выбранной музыке и помещает в текстовое поле. Данные берутся в основном из узла XML, а также из переменных, которые мы устанавливаем в ходе манипуляций кнопками, из свойств объекта sound.

Отдельно расскажу о последней части функции, со строки this.string_txt.autoSize = true; Этой строкой устанавливается автоматический размер окна. После этого, в зависимости от того, какая выбрана установка, решаем, какой размер окна по высоте будем устанавливать - полный или только по высоте одной строки (16). Далее отменяем автоматический размер окна и устанавливаем тот, который выбрали. Таким образом, мы не удаляем дополнительные данные - их просто не видно в маленьком окне.

this.showString = function() {

var volume = this.my_sound.getVolume();

var att = _root.input_xml[id].attributes;

var min = Math.floor(att.duration/1000/60);

min<10 ? min="0"+min : "";

var sec = Math.floor(att.duration/1000)%60;

sec<10 ? sec="0"+sec : "";

var curr = this.id == this.active_id;

var stat = curr ? this.stat : "off";

var str = this.id+".\tsong:\t\t"+att.songName;

str += "\t\r\tstatus:\t\t"+stat;

if (stat == "played") {

str += "\t\r\tvolume:\t"+volume;

}

str += "\t\r\tartist:\t\t"+att.artist;

str += "\t\r\talbum:\t"+att.album;

str += "\t\r\tgenre:\t\t"+att.genre;

str += "\t\r\tduration:\t"+min+":"+sec;

str += "\t\r\tcomments:\r\t"+att.comment;

this.string_txt.text = str;

this.string_txt.autoSize = true;

var h = this.info ? this.string_txt._height : 16;

this.string_txt.autoSize = false;

this.string_txt._width = 280;

this.string_txt._height = h;

};

После того как задана функция, вызовем ее, чтобы показать в текстовом поле стартовые настройки:

this.showString();

TIPS 14. Прелодер, индикатор проигрывания

Для того чтобы юзверь видел, какая часть музыкального файла уже загрузилась и в каком месте проигрывается файл, нужно сделать соответствующий индикатор. Для этого создаем мувик и располагаем его чуть выше всех наших объектов.

this.createEmptyMovieClip("loader_mc", 1);

this.loader_mc._y = -5;

Определяем 100% длину индикаторной линии от нулевой координаты до конца текстового поля:

this.loader_mc.w = string_txt._width+string_txt._x;

И обсчитываем две цифры: процент загрузки и процент позиции проигрывания.

Эти цифры рассчитываем с учетом того, что 100% это длина всей индикаторной линии.

И затем последовательно рисуем линии, соответствующие этим значениям.

this.loader_mc.onEnterFrame = function() {

var s = this._parent.my_sound;

var l = s.getBytesLoaded();

var t = s.getBytesTotal();

var p = s.position;

var d = _root.input_xml[this._parent.active_id].attributes.duration;

var x = l/t*this.w;

this.clear();

this.lineStyle(6, 0x000000, 100);

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