Действительно, они оба (скины и itemRenderers), похоже, делают рисование с использованием пакета flash.graphics. *. Я копировал код с кодами между скинами и itemRenderers раньше, поэтому я действительно не понимаю разницы. У меня было больше опыта внедрения itemRenderers, чем скинов, поэтому это может быть частью проблемы. Спасибо, дайте мне знать.В Flex, в чем разница между кожей и itemRenderer?
ответ
Кожа - это графический элемент, который может применяться к различным UIComponents. Контейнеры могут иметь borderSkins и кнопки могут иметь различные скины up/over/down. Они могут быть реализованы несколькими способами, включая использование API-интерфейса чертежа («Программные скины») или путем внедрения активов («Графические скины»). Скины обычно довольно легкие и могут быть только Flash DisplayObject, а не Flex UIComponent, который является более тяжелым, но обладает гораздо большей функциональностью.
ItemRenderer обычно представляет собой UIComponent, который элемент управления на основе списка использует для отображения элемента. Вы также обычно используете itemRenderers при использовании DataGrid/DataGridColumn. Большинство компонентов, которые используют itemRenderers, перерабатывают их, что означает, что они создают примерно столько, сколько необходимо для отображения на экране, и по мере того, как пользователь прокручивает данные, одни и те же элементы перераспределяются и получают новые данные, подключенные к ним. Это одна из причин, по которой списки и DataGrid могут поддерживать большое количество данных и почему попытка выполнить аналогичные вещи с помощью Repeater приводит к приложениям с ужасной производительностью.