Эффекты искры: почему процедурный код предпочтительнее триггеров?

В Flex 3 эффекты MX могут запускаться следующим образом:

<mx:Resize id="myEffect" />
<mx:Button mouseDownEffect="{myEffect}" />

В Flex 4 эффекты Spark запускаются следующим образом:

protected function onClick(event:MouseEvent):void {
    resizeEffect.end();
    resizeEffect.play();
}
...
<s:Resize id="resize" />
...
<s:Button click="onClick(event)" />

Что послужило причиной использования этого менее декларативного и более длительного подхода? Я нигде не нашел ответа в документации.

(Обратите внимание на две вещи:

  1. Между триггером mouseDown и событием щелчка могут быть небольшие различия, не обращайте на это внимания, это всего лишь пример.
  2. Я не уверен, будут ли триггеры надежно работать для эффектов Spark. Может быть, они это сделают, но я думаю, что есть причина, по которой эта возможность даже не упоминается в официальных документах.

)


person Borek Bernard    schedule 12.12.2010    source источник


Ответы (2)


Триггеры эффектов официально не поддерживаются в Spark в текущем выпуске. Вы можете отслеживать прогресс этой функции здесь: http://bugs.adobe.com/jira/browse/SDK-19743

person sshongru    schedule 13.12.2010
comment
Вы знаете причину этого решения? Не хватило времени? Мне кажется странным, что общая декларативная модель Spark использует императивный код для запуска эффектов. - person Borek Bernard; 13.12.2010
comment
Я на самом деле не уверен, какое решение было принято, но я предполагаю, что баланс времени, необходимого для реализации функции, и приоритета среди других функций мог быть частью этого. Это могло быть определено как функция, требующая большего количества отзывов сообщества, чтобы увидеть, как часто она используется на самом деле. Пожалуйста, проголосуйте за ошибку и / или оставьте комментарий со своим вариантом использования, если вы считаете, что это важно для реализации. Чем больше голосов / отзывов он получит, тем больше шансов, что он будет реализован. - person sshongru; 18.12.2010

Я добавлю, что кнопка Flex 4 все еще имеет триггеры эффектов, задокументированные в ASDocs, включая mouseDownEffect. Вы уверены, что они не работают?

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

Поскольку в Spark есть наполовину запеченный набор компонентов, возможно, такие вещи еще не реализованы. Также возможно, что эффект не передается вашему классу скинов кнопки, который, как я подозреваю, вероятно, должен иметь дело с такими визуальными изменениями.

Возможно, вам стоит предоставить нам несколько работоспособных образцов?

person JeffryHouser    schedule 12.12.2010