2010-07-15 3 views
1

Я работаю над сайтом, для детей, у которого есть маленький аватар в углу, который говорит. Аватара - это флеш-файл, и план состоит в том, чтобы определить, что он говорит, используя сочетание javascript и ajax.Воспроизведение одного звука за раз в AS3, вызванного из javascript

К сожалению, когда я делаю флеш-файл воспроизведением Mp3-файла с помощью JavaScript, я не могу остановить звук. Поэтому, когда я продолжаю нажимать на ссылку, которая заставляет ее говорить, я слышу, что звук повторяется x раз ,

Незначительная вещь, когда я прикрепляю к тому же самому коду к кнопке во вспышке, кажется, что никакое такое ограничение.

Кажется, что он не будет хранить ничего в глобальных переменных при вызове из JavaScript.

Любая идея, что здесь происходит?

Отказ от ответственности: Я совершенно новое, когда дело доходит до AS3 (и до сих пор, я действительно ненавидя его)

ответ

1

Если у вас возникли проблемы с надежным воспроизведения звука, и вы новичок в AS3 , Я настоятельно рекомендую использовать Matt Przybylski's SoundManager class. Это помогает абстрагировать некоторые нюансы надежного воспроизведения звука во Flash. Не должно быть никаких проблем с «глобальными переменными при вызове из JavaScript», но нам нужно будет увидеть пример кода, который поможет отладить его.

+0

Ну, совершенно странно, что теперь, когда я запустил тестовую страницу html через день, не изменяя ее, она отлично работает. Поэтому я немного смущен тем, что произошло. Я проверю ссылка, спасибо! –

+0

Всякий раз, когда вы работаете с javascript и/или флеш-разработкой, будьте в курсе кеширования браузера. Всегда очищайте кеш или обновляйте обновление, чтобы получить последние swf/js при создании. Возможно, ваша проблема связана с загрузкой кэшированной ранее сборки swf. – sunetos

0

В файле Flash вы можете иметь логическую переменную, которая указывает, воспроизводится ли звук в данный момент. Если переменная «истинна», когда Javascript запрашивает Flash для воспроизведения звука, это неслучайно, потому что он знает, что в данный момент воспроизводится звук. Затем вы можете проверить, когда звук будет завершен, и установите значение Boolean в false.

+0

Это первое, что я пробовал, но это не сработало. Как ни странно, такой же немодифицированный код работает через день, поэтому я думаю, что это может быть проблема кэширования браузера или что-то в этом роде. Спасибо, в любом случае! –