![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 17.04.11]
Регистрация: Mar 2011
Сообщений: 168
|
почему-то не происходит событие SOUND_COMPLETE. В чем проблема?
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
А trace() в обработчике срабатывает?
|
|
|||||
|
насколько помню на SoundChannel вешается, а не на Sound
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
[+3 17.04.11]
Регистрация: Mar 2011
Сообщений: 168
|
Нет! воспроизведение прекращается, а в событие не заходит вообще!
Добавлено через 1 минуту пробовал на SoundChannel, все равно не происходит ((( |
|
|||||
|
покажите больше кода..где получаете ссылку на ченнел и подписываете его
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
[+3 17.04.11]
Регистрация: Mar 2011
Сообщений: 168
|
хотя нет, заходит, извиняюсь, спасибо )))
Добавлено через 1 минуту блин, все-равно не работает, вот зараза (((( Добавлено через 6 минут var snd:Sound = new Sound(new URLRequest("Tank_rolling.mp3")); var channel:SoundChannel = new SoundChannel(); var pausePos:Number = channel.position; if (f_Up) { if(!isPlaying){ channel = snd.play(pausePos); isPlaying = true; } tank.foot.wheels.play(); //запускаем анимацию колёс tank.x += step * Math.sin(dirAngle); //проекция скорости на ось x tank.y -= step * Math.cos(dirAngle); //проекция скорости на ось y } else if (f_Down) { if(!isPlaying){ channel = snd.play(pausePos); isPlaying = true; } tank.foot.wheels.play(); tank.x -= step * Math.sin(dirAngle); //идём tank.y += step * Math.cos(dirAngle); //назад }else{ pausePos = channel.position; channel.stop(); isPlaying = false; tank.foot.wheels.stop(); } все разобрался, оказывается слушатель события нужно было добавить в обработчик события Enter_Frame в котором у меня все это происходило. Пока тяжело понимаю почему именно так, но работает ))))) |
|
|||||
|
[+3 17.04.11]
Регистрация: Mar 2011
Сообщений: 168
|
ну как бы да ))) понимаю что это глупо, но лучшего решения этого глюка я пока не нашел (((
|
|
|||||
|
[+3 17.04.11]
Регистрация: Mar 2011
Сообщений: 168
|
var snd:Sound = new Sound(new URLRequest("Tank_rolling.mp3")); var channel:SoundChannel = new SoundChannel(); var pausePos:Number = channel.position; var isPlaying:Boolean = false; var f_Left=false; var f_Right=false; var f_Up=false; var f_Down=false; var f_Mouse=false; stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey_Down); function onKey_Down(e:KeyboardEvent):void{ if(e.keyCode==37) f_Left=true; if(e.keyCode==38) f_Up=true; if(e.keyCode==39) f_Right=true; if(e.keyCode==40) f_Down=true; } stage.addEventListener(KeyboardEvent.KEY_UP,onKey_Up); function onKey_Up(e:KeyboardEvent):void{ if(e.keyCode==37) f_Left=false; if(e.keyCode==38) f_Up=false; if(e.keyCode==39) f_Right=false; if(e.keyCode==40) f_Down=false; } stage.addEventListener(MouseEvent.MOUSE_UP,onMouse_Up); function onMouse_Up(e:MouseEvent):void{ f_Mouse=false; } channel.addEventListener(Event.SOUND_COMPLETE, onSound_Complate); function onSound_Complate(e:Event){ pausePos = 0; isPlaying = false; } stage.addEventListener(Event.ENTER_FRAME,onEnter_Frame); function onEnter_Frame(e:Event):void{ if (f_Up) { if(!isPlaying){ channel = snd.play(pausePos); isPlaying = true; } } else if (f_Down) { if(!isPlaying){ channel = snd.play(pausePos); isPlaying = true; } }else{ pausePos = channel.position; channel.stop(); isPlaying = false; } } вроде бы оставил самое важное. Так вот в обработчик события не заходит ((( |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:21. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| SOUND_COMPLATE |
|
|