Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как сделать музыкально сопровождение сайта (http://www.flasher.ru/forum/showthread.php?t=122452)

Dr_Bra 11.03.2009 15:13

как сделать музыкально сопровождение сайта
 
Привет всем )))
Подскажите пожалуйста, как можно реализовать музыкальное сопровождение для сайта.

1) Вот выбрали песню
2) Импортируем ее на timeline
3) Делаем кнопку, которая отвечает за включение и отключение звука

И у меня тут вопрос, песня будет постоянно проигрываться (бесконечно)?
Какой код прописать к кнопке которая будет отвечать за включение и выключение звука..

lexa2000lexa 11.03.2009 15:22

В следующем примере создается новый объект Sound, в который загружается звук. Момент окончания загрузки звука обрабатывается обработчиком события onLoad, позволяющее начать воспроизведение после успешной загрузки. Затем, при помощи метода start(), звук начинает проигрываться. Чтобы пример работал, необходимо иметь MP3 файл song1.mp3 в той же директории, что и FLA.

Код AS1/AS2:

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

пример из хелпа.

Dr_Bra 11.03.2009 15:46

lexa2000lexa, спасибо! А как теперь его остановить, выключить звук?

lexa2000lexa 11.03.2009 15:55

Код AS1/AS2:

объект_Sound.start()
объект_Sound.stop()


Dr_Bra 11.03.2009 16:04

то есть исходя из первого кода
Код AS1/AS2:

//кнопка отключает звкук
zvuk.onRelease = function() {
    trace("sound stopped");
    my_sound.stop();
};

И это верно! А как модернизировать кнопку, чтобы при последующем нажатии она отключала, а потом включала звук?

lexa2000lexa 11.03.2009 16:10

ага только не
Код AS1/AS2:

start()()

а
Код AS1/AS2:

start()


Dr_Bra 11.03.2009 16:13

вообще возможно такое: последующем нажатии одна кнопка отключала, а потом включала звук?

lexa2000lexa 11.03.2009 16:24

можно
Код AS1/AS2:

but.onPress = function(){
        if(!this.flag){
                start();
                }
                else{
                        stop();
                        }
        this.flag = !this.flag;
}


Dr_Bra 11.03.2009 16:43

Цитата:

Сообщение от lexa2000lexa (Сообщение 804646)
можно
Код AS1/AS2:

but.onPress = function(){
        if(!this.flag){
                start();
                }
                else{
                        stop();
                        }
        this.flag = !this.flag;
}


то есть нужно внутри кнопки сделать минимум два фрейма и поставить флажки например над первым кадром "on" и над втроым кадром "off" и тогда получится такой код
Код AS1/AS2:

but.onPress = function(){
        if(!this.on){
                start();
                }
                else{
                        stop();
                        }
        this.on = !this.on;
}

Добавлено через 2 минуты
наверное, я рассмешил Вас своим кодом, прошу прощение за свою безграматность в as. давайте немного подробнее разберем

Добавлено через 29 минут
??? и ещё такой вопрос:
Сначала на сайте появляется прелодер и затем кода все объекты загрузятся прелодер исчезает и пользователь попадает на страничку сайта..
Если использовать такой метод
Код AS1/AS2:

var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", true);

грубо говоря впишем мы этот код в тот кадр где начинается информационная часть (после прелодера). У пользователя с медленным интернетом все затормозит?

Добавлено через 30 минут
или же этот код
Код AS1/AS2:

var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3";, true);

нужно писать сразу в первом кадре, вместе с прелодером??

lexa2000lexa 11.03.2009 17:49

код который я вам написал для кнопки трогать ен нужно, там flag это имя переменной.
Код AS1/AS2:

var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", true);

это загрузка звука , ее нужно сделать после загрузки всего контента.

Dr_Bra 11.03.2009 18:27

Цитата:

Сообщение от lexa2000lexa (Сообщение 804679)
код который я вам написал для кнопки трогать ен нужно, там flag это имя переменной.
Код AS1/AS2:

var my_sound:Sound = new Sound();
my_sound.loadSound("song1.mp3", true);

это загрузка звука , ее нужно сделать после загрузки всего контента.

посмотрите пожалуйста код, который получился в моем случае, кнопка не работает, поправьте меня плиз
Код AS1/AS2:

// Создаем новый объект 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

Код AS1/AS2:

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


Dr_Bra 11.03.2009 18:39

СПАСИБО!!!!
а по поводу медленного интернета, как лучше быть?
На сайт грузить таким образом или же импортировать на таймлайн?
Ведь в самом начале, когда пользователь попадает на страничку, он видит только прелодер, а потом уже открывается весь сайт...
Вот и вопрос, когда проходит прелодер, начинает грузиться музыка и все зависает или же нет?

lexa2000lexa 11.03.2009 19:14

Если звук не будет меняться, тогда можете импортировать в библиотеку, а от туда его атачить.

Dr_Bra 11.03.2009 19:17

а если у звука будет меняться громкость? это не меняет сути?

lexa2000lexa 11.03.2009 19:51

ну громкость можете ему тоже программно менять
Код AS1/AS2:

my_sound.setTransform(soundTransformObject:Object) : Void


artem.qznetsov 11.03.2009 20:17

Код AS1/AS2:

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();
что я делаю не так?
еще раз прошу прощения за тупой вопрос

Dr_Bra 11.03.2009 20:58

Цитата:

Сообщение от artem.qznetsov (Сообщение 804723)
Код AS1/AS2:

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

VVall 12.03.2009 18:44

Там есть пример - надо всё делать вручную, то есть запоминать позицию и останавливать звук, а потом играть с этой позиции.

artem.qznetsov 12.03.2009 19:09

вы не могли бы дать название примера или хотя бы кейвордс, чтобы найти?
был бы очень признателен.

VVall 12.03.2009 19:23

http://livedocs.adobe.com/flex/3/lan...el.html#stop()

artem.qznetsov 12.03.2009 19:55

а для второго AS есть?
извините за настойчивость, решаю сразу несколько проблем..

VVall 12.03.2009 20:01

Разве во втором AS нет необходимых функций? Я по документации вижу, что всё есть.


Часовой пояс GMT +4, время: 09:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.