Форум 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=134198)

diego_m 23.12.2009 20:12

Проблема звука
 
У меня проект-учебник. Там, во фреймах есть звуковые дорожки. Мне нужно, чтобы при переходе на другой фрейм начиналось воспроизвдение нужной дорожки и прекращалось воспроизведение предыдущей. Если можно поподробнее распишите скрипты:rolleyes:

Hauts 23.12.2009 21:11

Функция stopAllSounds() останавливает воспроизведение звуков во всей флэшке. Но ее, соответственно, нужно вызывать до того, как вы переключаетесь на новую "дорожку".

А вообще, возможно, вам поможет вкладка "Stream" в настройках звуковых дорожек. Все зависит от того, как вы запускаете звуки.

diego_m 23.12.2009 21:30

У меня есть много дорожек. Мне нужно чтобы при переходе на фрейм звук прекращался (стопАллСоундс) - это понятно...
А как при включении трека во фрейме? Я понимаю, что схема у меня должна быть
Стоп Воспроизведение звука;
Начать Воспроизведение Звука;

И прописать в каждом фрейме, но я не знаю скриптов. Помогите

Добавлено через 1 час 48 минут
Я решил эту проблему так

1. Загрузил в библиотеку файлы
2. Указал на ActionScript
3. В первой форме прописал
Код AS1/AS2:

this.createEmptyMovieClip("sound1_mc", this.getNextHighestDepth());
var s1:Sound = new Sound(sound1_mc);
s1.attachSound("01");
 
var s2:Sound = new Sound(sound1_mc);
s2.attachSound("02");

4.Во всех фреймах прописал "
Код AS1/AS2:

stopAllSounds();

"

5. В нужных мне фреймах прописал ниже "
Код AS1/AS2:

s1.start();

", "
Код AS1/AS2:

s2.start();

" и так далее...

Как можно еще решить эту задачу?

Hauts 24.12.2009 08:59

Очевидно, что задача решается следующей схемой:
старт 1 - стоп 1 + старт 2 - стоп 2 + старт 3 и т.д.

У вас один из вариантов ее реализации. Вам другие нужны?
Вот, например:
Код AS1/AS2:

_global.soundController = {setSound:function (soundId) {
        this.playingSound.stop();
        this.playingSound = new Sound();
        this.playingSound.attachSound(soundId);
        this.playingSound.start();
}};

Этот код пишем в первом кадре основной временной шкалы. И когда вам нужно запустить новую дорожку, просто вызывайте функцию soundController.setSound(soundId), где вместо soundId пишите идентификатор аудио в библиотеке. Если вам при переходе на какой-то кадр нужно поменять звук, то в этом кадре и запускайте ее.

diego_m 25.12.2009 11:43

Да, но фреймы идут не последовательно. Так что я не могу знать куда щелкнет пользователь.

Hauts 25.12.2009 13:36

Оба утверждения не верные. Фрэймы идут последовательно. Непоследовательно это вы их можете запускать. Да и знать, куда щелкнет пользователь - вы вполне можете. Так что разбирайтесь, представленного кода вам вполне хватит.

Еще раз объясню, - код, который я привел выше, вписываете в первый кадр основной временной шкалы. А во всех кадрах, где хотите, чтоб менялась музыка - в действия вписываете soundController.setSound(soundId), где вместо soundId пишите идентификатор аудио, соответствующей фрэйму, на котором это аудио вы и хотите запускать.


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

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