TIPS OF FLASH: - MP3 плеер в одну строку Iv (dembicki@narod.ru) Спецвыпуск Xakep, номер #029, стр. 029-112-3 _soundbuftime = 20; Определим, какую по счету песенку мы хотим показать в информационном окне: this.id = 1; И зададим текстовому полю нужные свойства: this.string_txt.borderColor = 0x333399; this.string_txt.border = true; TIPS 8. Кнопка PLAY При клике на кнопку сохраним номер выбранной песни в переменной, хранящей номер активной песни. Переменной, хранящей статус, зададим значение "played". Дальше, если уже какая-нибудь песенка проигрывается, то остановим ее, создадим новый объект Sound, заменив им предыдущий с таким же именем, и начинаем загружать и проигрывать в потоковом режиме выбранную музыку. Задаем значение громкости в зависимости от позиции ползунка. Строкой showString() - обновляем информационное текстовое поле (об этой функции будет ниже). И задаем действия, которые нужно совершить после того, как музыка отыграет, - изменим статус и обновим информационное окно. this.play_butt.onRelease = function() { active_id=id, stat="played"; my_sound.stop(); my_sound = new Sound(); my_sound.loadSound("music/"+_root.input_xml[id].attributes.url, true); my_sound.setVolume(100-control_mc._y*100/16); showString(); my_sound.onSoundComplete = function() { stat="stopped", showString(); }; }; TIPS 9. Кнопка STOP Изменяем статус проигрываемой песни, обновляем информационное текстовое поле и останавливаем проигрывание музыки. this.stop_butt.onRelease = function() { stat="stopped", showString(); my_sound.stop(); }; TIPS 10. Кнопка с ползунком VOLUME Это два разных объекта. Ползунок не имеет собственных методов до тех пор, пока не нажата кнопка! При нажатии ползунку задаются функции, при отпускании убиваются. Смысл вычислений, происходящих при нажатой кнопке, сводится к тому, чтобы сместить ползунок на одну пятую (можно это число изменить) от смещения мыши после нажатия на кнопку. Ползунок очень маленький, поэтому, чтобы пользователь не пристреливался мышкой на нужный уровень звука, а спокойно изменял его, двигая мышкой в комфортном ему диапазоне, я и установил коэффициент перемещения 1/5. Затем, проверив крайние положения, вычисляем, какой уровень громкости задать. И обновляем информационное поле. this.volume_butt.onPress = function() { var mc = this._parent.control_mc; mc.poz = mc._y; mc.onMouseMove = function() { this._y = (this._parent._ymouse-this.poz)/5+this.poz; if (this._y<0) { this._y = 0; } else if (this._y>16) { this._y = 16; } this._parent.my_sound.setVolume(100-this._y*100/16); this._parent.showString(); }; mc.onMouseUp = function() { delete this.onMouseMove; delete this.onMouseUp; }; }; TIPS 11. Кнопка INFO Меняет значение булевой переменной на противоположную и обновляет информационное поле. this.info_butt.onRelease = function() { info=!info, showString(); }; TIPS 12. Кнопки UP и DOWN Действие этих кнопок сводится к тому, чтобы изменить в соответствующую сторону значение ID, при этом проверив крайние положения. При выборе ID большем, чем максимально возможное, переходим на первый, и наоборот, при выборе меньше, чем единица, переходим на максимально возможное. В результате получаем зацикливание. |