Регистрация: Oct 2013
Сообщений: 126
|
Проверка действующих твинов (caurina)
Использую твинер caurina для плавного появления элементов интерфейса при "входе" на уровень (выползают сверху или увеличивается масштаб). Но при одновременном появлении экземпляра сообщения происходит прерывание твинеров, из-за чего после закрытия сообщения какие-то элементы интерфейса вообще отсутствуют, а какие-то "дотвинились" не до конца. Подозреваю, что это как-то связано с тем, что при появлении сообщения игра ставится на паузу через переменную _pause:Boolean (при закрытии, конечно, снимается - _pause=false). Соответственно, обновление всего происходит в функции update, вызываемой ENTER_FRAME, где в самом начале стоит проверка if (!_pause) {...и т.д.
Я пытался перед появлением сообщение остановить все твины при помощи Tweener.pauseAllTweens(), а потом снова запустить при помощи Tweener.resumeAllTweens(), но это, почему-то, не помогло.
Решил перед появление сообщения поставить условие - "не действует ли, мол, в данный момент какой-нибудь твин"? Каждый отдельный твин можно проверить через Tweener.isTweening(), но тогда в скобках приходится указывать конкретный объект, а их много, так что этот вариант отпадает. А вот можно ли как-нибудь проверить, действуют ли в данный момент какие-либо твины (не загоняя их в массив или вектор), чтобы поставить это как условие?
Добавлено через 31 минуту
Проблема решена - оказалось, что в классе сообщения затесалась лишняя Tweener.removeAllTweens(), которая останавливает все твины не только в данном экземпляре, но и вообще. Тему можно удалять
Последний раз редактировалось a7s1h1; 27.01.2015 в 14:20.
|