Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   вопрос по интервалам в enterframe (http://www.flasher.ru/forum/showthread.php?t=207593)

Dmitriy154 24.04.2014 02:28

вопрос по интервалам в enterframe
 
У меня вопрос в обработчике события MouseEvent.CLIK я зарегистрировал другой слушатель по событию EnterFrame. Флеш простая - кликаю мышкой - анимация вспышки из автомата и вылетает пуля, но если часто кликать, то вылетает допустим три пули и происходит 1 вспышка. У меня вопрос, как сделать так, чтобы вспышка и вылет пули происходили в один момент.

Код AS3:

function mC(e:MouseEvent):void
{
 
        var pulya:Pulya = new Pulya();
        pulya.x = men.x
        pulya.y = men.y
        addChild(pulya);
        pulya.addEventListener(Event.ENTER_FRAME, polet_puli);
        men.avtomat.play(); // анимация вспышки автомата
}
 
function polet_puli(e:Event):void
{
        var pulya:Pulya = e.currentTarget as Pulya;
        pulya.x +=  skorost_puli;
 
}


ZackMercury 24.04.2014 02:32

Можно создавать каждый клик экземпляр мувика с вспышкой, но это жутко неоптимизировано.
Хотя проще будет заменить play() на gotoAndPlay(1);

Akopalipsis 24.04.2014 03:07

Создаете отдельный класс, в котором будет только ентерФрейм и массив.
Создаете отдельный класс вспышки и пуль. Кликнули мышкой и дОбавили:) в массив класса еФ
вспышку и пулю. Класс еФ видит, что в его массиве есть элементы и начинает последовательно
вызывать метод move в этих классах. Вспышка получит определенное кол-во тиков от еФ и сообщит классу
еФ что его пора удалять из массива. Класс еФ удаляет вспышку, но проигрывает пулю, пока та не сообщит об удалении.

ZackMercury 24.04.2014 03:16

Цитата:

Сообщение от Akopalipsis (Сообщение 1164453)
дабавили

Проще уже дАбавлять вспышку на клике, и при окончании проигрывания убирать со сцены(может быть даже изнутри вспышки, как вам будет ближе для понимания).

Dmitriy154 24.04.2014 11:15

gotoAndPlay(2) сработало, но как синхронизировать не вспышку к частому клику, а наоборот, чтобы пуля не могла вылететь до того, как закончиться анимация вспышки. Спасибо!

Wolsh 24.04.2014 11:34

отписываться от клика пока не закончится вспышка, или отключать саму реакцию на мышь.

Dmitriy154 24.04.2014 11:41

Цитата:

Сообщение от Wolsh (Сообщение 1164480)
отписываться от клика пока не закончится вспышка, или отключать саму реакцию на мышь.

Каким образом? Можете поподробней, отписаться как я понял, значит прописать в обработчике кадров removeEventListener(MouseEvent.CLICK,mC);
А где и как отключить реакцию на мышь.

Wolsh 24.04.2014 15:51

Цитата:

А где и как отключить реакцию на мышь.
Я ж не знаю, кто у Вас клик слушает. Отрубить ему мышь: ктоТо.mouseEnabled = false; Как вспышка закончится, вернуть в true.

ZackMercury 24.04.2014 15:57

А зачем отключать реакцию на мышь, если вы уже отписались от события?
Что-то одно из двух - или то, или другое.

Dmitriy154 24.04.2014 17:06

Спасибо!


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

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