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

Enfriz 08.07.2009 15:21

Программно поместить звук в некоторый кадр
 
В библиотеке есть много звуков, которые подключаются через attachSound. Задача - создать мувик и поместить эти звуки в определенные кадры, но номера кадров всегда разные (поэтому я не могу сделать это вручную и нужно кодом).

Вопрос: как программно поместить звук в некоторый известный кадр мувика?

iNils 08.07.2009 15:31

Никак.
Работа с таймлайном в процессе создания отличается от работы с ним программно. Все программное работает "здесь и сейчас".
Поэтому вам нужно контролировать номер текущего кадра и запускать нужный звук.

Zik. 08.07.2009 17:09

если звук в библиотеке, то называете его sound(например) и пишите:
Код AS1/AS2:

var mySound:Sound = new Sound(_root);
mySound.attachMovie("sound");

и дальше, либо в этом же:
Код AS1/AS2:

onEnterFrame = function():Void {
    if (_currentframe == нужный кадр) {
          mySound.start(0, 1);
    }
}

либо на нужном кадре пишете
Код AS1/AS2:

mySound.start(0, 1);

писал тут же, не тестил, так что могут быть ошибки.

Enfriz 08.07.2009 18:35

iNils, ZIK68,
ясно, сейчас примерно такой механизм у меня и есть. Но он очень медленный, при большом числе звуков сильно тормозит, оператор условия вообще сам по себе относительно медленный.

Я пытаюсь избавиться от циклов и операторов условий по максимуму.

Вот эта идея:
Код AS1/AS2:

onEnterFrame = function():Void {
    if (_currentframe == нужный кадр) {
          mySound.start(0, 1);
    }
}

у меня реализована гораздо сложнее, потому что звуков много, и в какой-то момент времени играется один из них. Каждую 1/50 секунды программа сверяется с массивом, проверяет, какой именно звук играть, и играет если такой есть. Когда звуков становится несколько десятков или даже сотен, это все начинает сильно тормозить.

Я пытался сделать это одним мувиком, чтобы он воспроизводил как бы всю мелодию одним потоком, а не проверял по 50 раз в секунду, надо ли играть ноту или нет и если надо то какую.
---------
Ладно, тогда такой вопрос: могу ли я программно прописать в какой-то кадр код?
И еще один: можно ли несколько звуков sound соединить в один, расположив их через заданные интервалы?

Zik. 08.07.2009 21:15

Цитата:

Ладно, тогда такой вопрос: могу ли я программно прописать в какой-то кадр код?
ну делайте так
Код AS1/AS2:

mySound.start(0, 1);

в нужном кадре

Enfriz 09.07.2009 01:49

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


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

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