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); |