![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2009
Сообщений: 16
|
Сразу извинюсь если вопрос очень элементарный, но с флешем я на ВЫ...
Подскажите как сделать так, чтобы звук, проигравшись один раз не прекращался, а повторялся. Так скажем зациклить воспроизведение. Есть следующий код: var snd:Sound = new Sound(); snd.load(new URLRequest("sound.mp3")); var channel:SoundChannel = new SoundChannel(); snd.addEventListener(Event.COMPLETE, onLoadComplete, false, 0, true); function onLoadComplete(evt:Event):void { var localSnd:Sound = evt.target as Sound; channel = localSnd.play(); } soundBtnON.buttonMode = true; soundBtnON.useHandCursor = true; soundBtnOFF.buttonMode = true; soundBtnOFF.useHandCursor = true; soundBtnON.visible = false; soundBtnOFF.addEventListener(MouseEvent.MOUSE_UP, soundBtnOFF_onClick); function soundBtnOFF_onClick(evt:MouseEvent):void { soundBtnON.visible = true; channel.stop(); } soundBtnON.addEventListener(MouseEvent.MOUSE_UP, soundBtnON_onClick); function soundBtnON_onClick(evt:MouseEvent):void { soundBtnON.visible = false; channel = snd.play(); } Заранее благодарен! |
|
|||||
|
Модрон-ветеринар
|
Не привязываясь к вашему коду, приведу пример:
Довольно просто. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 16
|
mooncar,
спасибо ОГРОМНОЕ! Принцип понял. Пытаюсь заместо my_sound подставлять snd, channel, localSnd .... Пока безуспешно. Пытаюсь понять глубже к чему именно надо дописать onSoundComplete и где ![]() |
|
|||||
|
Модрон-ветеринар
|
К тому экземпляру Sound, который нужно зациклить.
Не напутайте там с областями видимости - у вас, например, localSnd, виден только внутри функции. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 16
|
Что-то никак не могу сообразить.
Вызвать onSoundComplete мне не дает, возникает следующая ошибка: - Warning: 1090: Ошибка миграции: Flash Player не запускает обработчик событий onSoundComplete автоматически во время выполнения в ActionScript 3.0. Сначала нужно зарегистрировать этот обработчик для события, используя addEventListener ("soundComplete", callback_handler). переписал код следующим образом: var snd:Sound = new Sound(); snd.load(new URLRequest("sound.mp3")); var channel:SoundChannel = new SoundChannel(); snd.addEventListener(Event.COMPLETE, onLoadComplete, false, 0, true); snd.addEventListener(Event.SOUND_COMPLETE, onSoundComplete, false, 0, true); function onLoadComplete(evt:Event):void { //var localSnd:Sound = evt.target as Sound; channel = snd.play(); } function onSoundComplete(evt:Event):void { //channel.stop(); channel = snd.play(); } Ошибок не стало но как я понимаю вызова onSoundComplete не происходит. Последний раз редактировалось greatilya; 21.02.2010 в 09:44. |
|
|||||
|
Модрон-ветеринар
|
Еще бы! Простите, а вы его как записали? Вы на мой пример посмотрите внимательно, как записано. Ничего в глаза не бросается?Тут раздел AS1/AS2, вы невнимательность проявили, а я сразу внимания не обратил.
И с точки зрения AS2 у вас сейчас функция пытается отработать события this, а не события звука. А this - это не звук. Как сделать и возможно ли это в AS3 в хелпе посмотрите или в соответств. ветке вопрос задайте. Последний раз редактировалось mooncar; 21.02.2010 в 10:04. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 16
|
Извиняюсь еще раз... я не знаю отличий в ActionScript и понятия не имею на какой версии пишу. Поэтому вероятно и написал не в тот раздел.
суть в том, что если я пишу опираясь на вашу подсказку что-то вроде этого: то мне выдается как я уже писал: Цитата:
PS: mooncar, выражаю признательность за то что оперативно отвечаете причем вежливо) |
|
|||||
|
Модрон-ветеринар
|
Бывает. Изучите внимательно то, что вы делаете - главный вам совет, чтобы не попать впросак.
А прежде чем задавать вопрос на форуме, откройте встроенный хелп, да посмотрите, как отловить момент окончания звучания. И по этому событию стартуйте его снова. Я AS3 не знаю, но вероятно, там также есть такое событие, посмотрите верный синтаксис. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 16
|
Цитата:
Цитата:
Еще раз спасибо! |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|