Жизненный цикл компонента Flex Custom - PullRequest
0 голосов
/ 02 марта 2010

1) preInitialize: это событие возникает, когда компонент только что создан, но ни один из дочерних компонентов не существует.

2) initialize: это событие возникает после того, как компонент и все его дочерние элементы были созданы, но до того, как были вычислены какие-либо измерения.

3) creationComplete: отправляется даже после того, как был создан весь компонент и его дочерние элементы, а также после выполнения всех вычислений макета.

4) applicationComplete: отправляется после успешного создания всех компонентов приложения

Мои вопросы здесь

  1. Давайте предположим, что я создаю компонент кнопки, что тогда являются дочерними компонентами? Может ли кто-нибудь подробно объяснить мне дочерние компоненты компонента.

  2. Может кто-нибудь показать мне пример кода, где компонент создан .. Я имею в виду пользовательский компонент с нуля.

Ответы [ 2 ]

2 голосов
/ 28 октября 2013

Я собираюсь объяснить 3 фазы жизненного цикла компонента:

  1. рождения
  2. Жизнь
  3. Death

    • 1.Birth:
     ==>application instantiation
     ==>Create Properties, sizing
     ==>Add children
  • 2.Life
     ==>Validate and Invalidate Properties and sizes
     ==>Update list
        commitProperties(), measure(), and updateDisplayList().

      This is the way the functions communicate:

      invalidateProperties() –> commitProperties()‏
      invalidateSize() –> measure()‏
      invalidateDisplayList() –> updateDisplayList()‏
  • 3.Death
    ==>Removing Children: removeChild(), removeAllChildrens()
    ==>Garbage Collection: Collecting memory

Общий обзор жизненного цикла компонентов выглядит следующим образом ...

1. The constructor is called and initial properties are set.
2. The preinitialize event is dispatched.
3. The createChildren() function is called.
4. The initialize event is dispatched.
5. The commitProperties() function is called.
6. The measure() function is called (if necessary).
7. The layoutChrome() function is called (very rare and will not be covered in this post).
8. The updateDisplayList() function is called.
9. The creationComplete event is dispatched.
10. The updateComplete event is dispatched.
1 голос
/ 02 марта 2010

Исходный код Flex SDK - ваш друг. Посмотреть здесь:

http://opensource.adobe.com/svn/opensource/flex/sdk/tags/3.5.0.12683/frameworks/projects/framework/src

(Вы также можете получить доступ к исходному коду для любого класса платформы, нажав CTRL-SHIFT-T в Flash Builder и введя имя компонента инфраструктуры, который вы хотите открыть).

  1. Взгляните на mx.controls.ComboBase, который является суперклассом mx.controls.ComboBox. Его метод createChildren () создает несколько дочерних элементов, включая рамку, кнопку со стрелкой и ввод текста. Раскрывающийся список (который показывает элемент в ComboBox.dataProvider) определяется в ComboBox и создается / уничтожается динамически, поэтому он не создается в createChildren.

  2. Все эти классы являются хорошими примерами, хотя иногда реализация может быть чище. Простые компоненты, такие как Button, CheckBox и RadioButton, - хорошее место для начала.

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