Flash - Звук - Добавление внешних звуков в SWF - PullRequest
0 голосов
/ 29 апреля 2011

Здравствуйте, я создаю игру, в которой более 200 звуков, поэтому я не могу просто поместить звуки в мою библиотеку во флэш-памяти, а затем создать их как класс и играть в них.Поскольку звук, который он будет воспроизводить при нажатии на один объект, не всегда одинаков.

У меня есть эта функция для воспроизведения фонового звука, где вводится название песни, которую я хочу воспроизвести:

public function startMusicBack (music: String): void {

        var musicback:Sound = new Sound();
        var bgChannel:SoundChannel;
        var bgTransform:SoundTransform = new SoundTransform(1); 

        var req:URLRequest = new URLRequest(music); 



        try {

            musicback.load(req);

            //parar todos os sons
            SoundMixer.stopAll();
            // vou transformar o som para ele ficar mais baixo
            bgTransform.volume = .05;
            //faço o play do som mas meto num soun
            bgChannel= musicback.play(0,999,bgTransform);
        }
        catch (err:Error) {
            trace(err.message);
        }

}

Хорошо, это работало нормально, пока я не попытался сделать экспорт SWF-файла, а затем я получил сообщения об ошибкеиз-за неправильного пути к музыке.

Хорошо, мой вопрос: как я могу встроить прошлое со звуками в SWF или как я могу вызвать музыку в библиотеке Flash во время выполнения ???

1 Ответ

2 голосов
/ 29 апреля 2011

Вы можете встроить звуки непосредственно в SWF-файл, используя тег Embed:

// the path here is relative to the *File*, not the SWF
[Embed(source = "../../../../../assets/someSound.mp3", mimeType = "audio/mpeg")]
public var mySound:Class;

, затем вы можете создать новый звук как:

var s:Sound = new mySound;

Хотя с 200 звуками этоВозможно, вы сделаете ваш SWF-файл огромным, а время компиляции - болью в заднице.Для проблемы, с которой вы столкнулись, просто похоже, что путь к вашему музыкальному файлу неправильный.Если у вас был макет проекта, подобный следующему:

parentFolder
    - assets
        - mySound.mp3
    - bin
        - output.swf
    - src
        - subFolder
            - Main.as

Затем в вашем основном классе вы передаете путь к звуку относительно вашего * SWF *файл (то есть output.swf), поэтому вызывайте свою функцию следующим образом:

this.startMusicBack( "../mySound.mp3" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...