Просмотр полной версии : как сделать музыкально сопровождение сайта
Привет всем )))
Подскажите пожалуйста, как можно реализовать музыкальное сопровождение для сайта.
1) Вот выбрали песню
2) Импортируем ее на timeline
3) Делаем кнопку, которая отвечает за включение и отключение звука
И у меня тут вопрос, песня будет постоянно проигрываться (бесконечно)?
Какой код прописать к кнопке которая будет отвечать за включение и выключение звука..
lexa2000lexa
11.03.2009, 15:22
В следующем примере создается новый объект Sound, в который загружается звук. Момент окончания загрузки звука обрабатывается обработчиком события onLoad, позволяющее начать воспроизведение после успешной загрузки. Затем, при помощи метода start(), звук начинает проигрываться. Чтобы пример работал, необходимо иметь MP3 файл song1.mp3 в той же директории, что и FLA.
this.createTextField("status_txt", this.getNextHighestDepth(), 0,0,100,22);
// Создаем новый объект Sound
var my_sound:Sound = new Sound();
// Если звук загрузился успешно, проигрываем его, в противном случае выводим сообщение о неудачной загрузке.
my_sound.onLoad = function(success:Boolean) {
if (success) {
my_sound.start();
status_txt.text = "Звук загрузился";
} else {
status_txt.text = "Загрузка не удалась";
}
};
// Загружаем звук
my_sound.loadSound("song1.mp3", true);
пример из хелпа.
lexa2000lexa, спасибо! А как теперь его остановить, выключить звук?
lexa2000lexa
11.03.2009, 15:55
объект_Sound.start()
объект_Sound.stop()
то есть исходя из первого кода
//кнопка отключает звкук
zvuk.onRelease = function() {
trace("sound stopped");
my_sound.stop();
};
И это верно! А как модернизировать кнопку, чтобы при последующем нажатии она отключала, а потом включала звук?
lexa2000lexa
11.03.2009, 16:10
ага только неstart()()аstart()
вообще возможно такое: последующем нажатии одна кнопка отключала, а потом включала звук?
lexa2000lexa
11.03.2009, 16:24
можно but.onPress = function(){
if(!this.flag){
start();
}
else{
stop();
}
this.flag = !this.flag;
}
можно but.onPress = function(){
if(!this.flag){
start();
}
else{
stop();
}
this.flag = !this.flag;
}
то есть нужно внутри кнопки сделать минимум два фрейма и поставить флажки например над первым кадром "on" и над втроым кадром "off" и тогда получится такой код
but.onPress = function(){
if(!this.on){
start();
}
else{
stop();
}
this.on = !this.on;
}
Добавлено через 2 минуты
наверное, я рассмешил Вас своим кодом, прошу прощение за свою безграматность в as. давайте немного подробнее разберем
Добавлено через 29 минут
??? и ещё такой вопрос:
Сначала на сайте появляется прелодер и затем кода все объекты загрузятся прелодер исчезает и пользователь попадает на страничку сайта..
Если использовать такой метод
var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", true);
грубо говоря впишем мы этот код в тот кадр где начинается информационная часть (после прелодера). У пользователя с медленным интернетом все затормозит?
Добавлено через 30 минут
или же этот код
var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3";, true);
нужно писать сразу в первом кадре, вместе с прелодером??
lexa2000lexa
11.03.2009, 17:49
код который я вам написал для кнопки трогать ен нужно, там flag это имя переменной.var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", true);
это загрузка звука , ее нужно сделать после загрузки всего контента.
код который я вам написал для кнопки трогать ен нужно, там flag это имя переменной.var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", true);
это загрузка звука , ее нужно сделать после загрузки всего контента.
посмотрите пожалуйста код, который получился в моем случае, кнопка не работает, поправьте меня плиз
// Создаем новый объект Sound
var my_sound:Sound = new Sound();
// Загружаем звук
my_sound.loadSound("song1.mp3", true);
my_sound.onSoundComplete = function() {//когда воспроизведение закончилось начинаем сначала
my_sound.start();
};
//кнопка отключает звкук
zvuk.onPress = function(){
if(!this.zvuk){
start();
}
else{
stop();
}
this.zvuk= !this.zvuk;
}
lexa2000lexa
11.03.2009, 18:30
var my_sound:Sound = new Sound();
// Загружаем звук
my_sound.loadSound("song1.mp3", true);
my_sound.onSoundComplete = function() {//когда воспроизведение закончилось начинаем сначала
my_sound.start();
};
//кнопка отключает звкук
zvuk.onPress = function(){
if(!this.zvuk){
my_sound.start();
}
else{
my_sound.stop();
}
this.zvuk= !this.zvuk;
}
СПАСИБО!!!!
а по поводу медленного интернета, как лучше быть?
На сайт грузить таким образом или же импортировать на таймлайн?
Ведь в самом начале, когда пользователь попадает на страничку, он видит только прелодер, а потом уже открывается весь сайт...
Вот и вопрос, когда проходит прелодер, начинает грузиться музыка и все зависает или же нет?
lexa2000lexa
11.03.2009, 19:14
Если звук не будет меняться, тогда можете импортировать в библиотеку, а от туда его атачить.
а если у звука будет меняться громкость? это не меняет сути?
lexa2000lexa
11.03.2009, 19:51
ну громкость можете ему тоже программно менятьmy_sound.setTransform(soundTransformObject:Object) : Void
artem.qznetsov
11.03.2009, 20:17
this.createTextField("status_txt", this.getNextHighestDepth(), 0,0,100,22);
// Создаем новый объект Sound
var my_sound:Sound = new Sound();
// Если звук загрузился успешно, проигрываем его, в противном случае выводим сообщение о неудачной загрузке.
my_sound.onLoad = function(success:Boolean) {
if (success) {
my_sound.start();
status_txt.text = "Звук загрузился";
} else {
status_txt.text = "Загрузка не удалась";
}
};
// Загружаем звук
my_sound.loadSound("song1.mp3", true);
Здравствуйте.
извините за возможное ламерство, но при вводе данного кода вылезает компиллер еррор с identifier expected в строчке var my_sound:Sound = new Sound();
что я делаю не так?
еще раз прошу прощения за тупой вопрос
this.createTextField("status_txt", this.getNextHighestDepth(), 0,0,100,22);
// Создаем новый объект Sound
var my_sound:Sound = new Sound();
// Если звук загрузился успешно, проигрываем его, в противном случае выводим сообщение о неудачной загрузке.
my_sound.onLoad = function(success:Boolean) {
if (success) {
my_sound.start();
status_txt.text = "Звук загрузился";
} else {
status_txt.text = "Загрузка не удалась";
}
};
// Загружаем звук
my_sound.loadSound("song1.mp3", true);
Здравствуйте.
извините за возможное ламерство, но при вводе данного кода вылезает компиллер еррор с identifier expected в строчке var my_sound:Sound = new Sound();
что я делаю не так?
еще раз прошу прощения за тупой вопрос
возможно вы не переименовали выш мп3 файл в song1.mp3
artem.qznetsov
12.03.2009, 18:23
спасибо, все работает.
есть еще вопрос. если нужно сделать, чтобы музыка не останавливалась по кнопке, а ставилась на паузу, начиная играть с того же места после второго нажатия на ту же кнопку.
хелп облазил, но там нет метода для pause
Там есть пример - надо всё делать вручную, то есть запоминать позицию и останавливать звук, а потом играть с этой позиции.
artem.qznetsov
12.03.2009, 19:09
вы не могли бы дать название примера или хотя бы кейвордс, чтобы найти?
был бы очень признателен.
http://livedocs.adobe.com/flex/3/langref/flash/media/SoundChannel.html#stop()
artem.qznetsov
12.03.2009, 19:55
а для второго AS есть?
извините за настойчивость, решаю сразу несколько проблем..
Разве во втором AS нет необходимых функций? Я по документации вижу, что всё есть.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.