Flex / AS3 с использованием нескольких средств визуализации элементов в списке - PullRequest
2 голосов
/ 23 февраля 2011

Я пытаюсь добавить в список несколько средств визуализации элементов, поскольку у меня есть несколько различных типов объектов, которые я хочу отобразить. Я попытался создать новый класс, который расширяет ListBase, и добавить переопределить публичную функцию createItemRenderer с моим кодом в этой функции. Затем я создаю экземпляр нового класса и передаю ему свой массив данных в качестве dataProvider, но createItemRenderer никогда не вызывается в моем новом классе, может кто-нибудь мне помочь, пожалуйста?

Спасибо

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011

Мне удалось решить эту проблему, расширив List вместо ListBase, так что спасибо shakakai за то, что заставили меня задуматься об этом:)

Если у кого-то еще есть подобная проблема, вот как выглядит мой код:

public class MultipleRenderersList extends List
{       
    override public function createItemRenderer(data:Object):IListItemRenderer
    {
            if (data is Type1)
        {
            return new Type1Component;
        }
        else if (data is Type2)
        {
            return new Type2Component;
        }

        return null;
    }
2 голосов
/ 23 февраля 2011

Я имел дело с этим в прошлом, создавая единое средство визуализации элементов, которое может обрабатывать различные типы данных. Есть несколько способов сделать это, например, изменение состояний в зависимости от типа данных или использование ViewStack, который переключается в зависимости от типа данных, или использование actioncript для создания / добавления подкомпонента для отображения данных соответствующим образом. Просто переопределите метод set data в вашем средстве визуализации элементов и переключите компоненты по мере необходимости. Надеюсь, это поможет.

...