У вас много кода.Я расскажу более подробно, но суть в том, что вы не меняете свой компонент, когда изменяется свойство data вашего рендерера.Таким образом, как средство визуализации узнает, когда нужно изменить отображаемые значения?
Итак, первый комментарий заключается в том, что во время первоначальной визуализации компонента List часто создается один модуль визуализации.Нет ничего необычного в том, что дважды происходит срабатывание creationComplete.
Второй комментарий заключается в том, что creationComplete часто является ужасным местом для любого кода инициализации.Прочтите информацию о жизненном цикле компонентов Flex для Spark или Halo .Событие pre-initialize лучше, или событие initialze, если вы хотите получить доступ к дочерним элементам компонента.
В-третьих, вам нужно изучить и прочитать о повторном использовании рендера .Суть в том, что при прокрутке списка каждый рендерер используется повторно.Данные изменяются.Это не создано снова.Компонент List просто передает новые данные и ожидает, что средство визуализации знает, что делать.Ваш код creationComplete, скорее всего, должен будет перейти к обработчику событий dataChange.
В-четвертых, вы должны использовать жизненный цикл Flex Component.Похоже, что ваши методы отображения рендеринга и изменения размера должны переместиться в updateDisplayList (), который должен обрабатывать размеры и расположение дочерних компонентов.
Потребуется довольно много времени, чтобы переписать ваш рендерер;поэтому я сдался на полпути.Но, прочитайте некоторые ссылки, которые я предоставил, расскажите о них и вернитесь, если у вас есть проблемы.