Жизненный цикл компонента пользовательского интерфейса во Flex - PullRequest
6 голосов
/ 15 июня 2011

В жизненном цикле компонента пользовательского интерфейса я слышал события проверки и аннулирования.

Пожалуйста, объясните мне кратко об этих событиях.

Что делает метод updateDisplayList() в этом жизненном цикле.

Пожалуйста, объясните мне кратко, если это возможно.

Спасибо заранее.

Ответы [ 2 ]

16 голосов
/ 15 июня 2011

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

Я добавлю, что updateDisplayList () - это метод, а несобытие, на всякий случай их путаница.

Это основные переопределяемые методы:

  • createChildren () : используется для создания компонентадети.
  • commitProperties () : Это метод подстановочных знаков.Вы используете его для координации нескольких изменений свойств в одном месте.То, для чего вы его используете, зависит от компонента, который вы создаете, и свойств.
  • measure () : используется для установки «идеальной» высоты и ширины компонента на основена детей.Вы устанавливаете measureHeight и measureWidth.
  • updateDisplayList () : используется для отображения всего, что связано с отображением, чаще всего для определения положения и размера дочерних элементов компонента.

Все эти методы будут работать во время первоначального создания компонента.Однако три из этих методов - commitProperties (), measure () и updateDisplayList () - можно настроить для запуска во время следующего события рендеринга.Чтобы подготовить их к запуску, просто аннулируйте их, используя соответствующий метод аннулирования:

  • invalidateProperties () заставляет commitProperties () перезапускаться.
  • invalidateSize () заставляет measure () перезапускаться.
  • invalidateDisplayList () принудительно перезапускает updateDisplayList ().

Частота срабатывания событий рендеринга зависит от частоты кадров вашего приложения.Я думаю, что частота кадров Flex по умолчанию составляет 24 кадра в секунду, поэтому каждые 1/24-й секунды происходит одно событие рендеринга.

Я определил жизненный цикл компонента как набор методов и событий.Итак, это события в порядке их запуска:

  • preinitialize
  • initialize
  • childAdd
  • updateComplete
  • creationComplete

updateComplete будет срабатывать после каждого события визуализации, я полагаю.Но другие являются частью создания компонента.

Вы должны прочитать документацию по Flex на этом

В жизненном цикле компонента Spark добавлены различные крючки для соответствия подходу двух классов;с одним классом для бизнес-логики и один для скинов.Тем не менее, это продлевает жизненный цикл компонента MX / Halo.

1 голос
/ 15 июня 2011

Короче говоря:

  • свойства недействительности помечают для проверки. Проверка будет происходить только в следующем цикле рендеринга, поэтому, если вы установите значение свойства 5 раз за это время, будет эффективно зафиксировано только последнее значение. (Дает вам лучшую производительность)
  • проверка: если свойство было помечено, оно будет обновлено в методе commitProperties ()
  • updateDisplayList () вызывается после проверки: теперь новые значения свойств можно использовать для изменения представления в соответствии с этими значениями

Хорошая длинная версия: http://www.dlgsoftware.com/primers/Primer_on_Flex3_Component_Lifecycle.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...