Эффекты искры: почему процедурный код предпочтительнее триггеров? - PullRequest
1 голос
/ 12 декабря 2010

В 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 и событием click, пожалуйста, не обращайте на это внимания, это только пример.
  2. Я не уверен, будут ли триггеры работать надежно или нет для эффектов Spark. Возможно, они будут, но я думаю, что есть причина, по которой эта возможность даже не упоминается в официальных документах.

)

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

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

0 голосов
/ 12 декабря 2010

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

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

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

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

...