Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вкл/Выкл звука при условии достижения анимацией определённого кадра (http://www.flasher.ru/forum/showthread.php?t=195987)

Yulia_V 17.03.2013 12:47

Вкл/Выкл звука при условии достижения анимацией определённого кадра
 
При нажатии на кнопку запускается анимация. Когда анимация достигает определённого кадра (и до второго клика на нём остаётся) включается музыка. При повторном нажатии на кнопку музыка замолкает.
У меня она не замолкает.
Видимо потому что условие if(qw_cont.myz.currentFrame == 79) срабатывает один раз. Пыталась записать его внутрь условия if (bal), привело к возникновению ошибки. Попытки как-то записать второе условие, при котором звук должен выключиться, например if(qw_cont.myz.currentFrame > 80) тоже не помогло. Если просто написать как ниже, только if(qw_cont.myz.currentFrame > 79) звук начинает бесконечно возникать и накладываться друг на друга.
Код AS3:

                qw_cont.kn_myz.addEventListener(MouseEvent.CLICK, oMClick4);
        function oMClick4(e:MouseEvent):void
        {
                // тут код, запускающий анимацию
 
addEventListener(Event.ENTER_FRAME, EFHr);
var bal:Boolean = true;
function EFHr(e:Event):void {
if(qw_cont.myz.currentFrame == 79){
        if (bal) {
        channel = new MySound3().play(0,999999);
        bal = false;
        } else {
        channel.stop();
        bal = true;
 
                }
                }
                }
                }


Alex Lexcuk 18.03.2013 17:21

Код AS3:

                        sndPlayPauseBtn.addEventListener(MouseEvent.CLICK, clickHandler);
                        addEventListener(Event.ENTER_FRAME, enterFrameHandler);
                }
                function enterFrameHandler(e:Event):void {
                        if (qw_cont.myz.currentFrame == 79) {
                                if (pauseTr) clickHandler(null);
                        }
                }
 
                function clickHandler(e:*):void{
                        if (pauseTr){
                                soundPosition = soundChanel.position;
                                soundChanel.stop();
                                pauseTr = false;
                        } else {
                                soundChanel = new MySound().play(soundPosition,99999999);
                                pauseTr = true;
                        }
                }



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

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