групповые эффекты опрокидывания с помощью ActionScript3

У меня возникла следующая проблема с проектом actionscript3.

У меня есть группа кнопок, настраиваемая через класс, сидящий в спрайте держателя.

Когда я переворачиваю одну из этих кнопок, я перебираю все кнопки в держателе и запускаю tweenlite для перехода от альфа к 0,4, за исключением случаев, когда имя соответствует текущей активной кнопке.

Когда я выкатываю, я снова сбрасываю все кнопки обратно на альфа-1 с помощью tweenlite tween.

В большинстве случаев это работает нормально. у меня есть следующие проблемы:

  • когда я перекатываюсь с одной кнопки прямо на другую, появляется много мерцания
  • иногда, когда я переключаюсь на другую кнопку, она исчезает, а затем снова исчезает
  • У меня есть случай, когда вместо возврата всех кнопок в альфа 1 мне нужно вернуть их в исходное состояние альфа.

Я пробовал использовать tweengroup, но это тоже не помогает.

дайте мне знать, если вам понадобится дополнительная информация. код интегрирован во множество других вещей, поэтому я не публиковал его, но при необходимости я могу что-нибудь собрать.

благодаря.

Джош


person Josh    schedule 23.07.2009    source источник


Ответы (2)


IMO, вы должны создать класс для этих кнопок, который поддерживает состояние внутри ... поэтому извне вы вызываете только два метода, скажем fadeDown и fadeUp, на кнопках ... сами кнопки знают, что их alhpa , если есть запущенная анимация и т. д. ... они всегда будут уничтожать свою собственную анимацию (или просто продолжать, если это правильная анимация) ... а затем запускать правильную анимацию, чтобы получить правильное визуальное представление их внутреннего состояние ... вы можете подумать об использовании шаблона состояния в этом отношении ... чтобы сохранить код чистый ... (просто используйте частные классы, чтобы не было слишком много файлов) ...

Кроме того, хорошо в этом то, что анимация отделена от логики, поэтому вы можете легко повторно использовать кнопку вне контекста логики и / или изменить концепцию анимации (например, размыть кнопки вместо того, чтобы затухать. ) без какого-либо влияния на логику ...

надеюсь это поможет ... ;)

привет

back2dos

person back2dos    schedule 23.07.2009

Чтобы избежать мерцания, вы можете использовать небольшую задержку для подростков и позволить им перезаписывать друг друга (проверьте на странице TweenLite)

К вопросу о возврате их к исходной альфа-версии, простое ли не сработает?

person Carlo    schedule 23.07.2009