|

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
|