Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   List + ItemRenderer = полная неразбериха. (http://www.flasher.ru/forum/showthread.php?t=170041)

Astraport 17.10.2011 13:53

List + ItemRenderer = полная неразбериха.
 
Компонент Spark List использует для вывода данных кастомный ItemRenderer, а в качестве DataProvider - ArrayCollection. В Itemrenderer передается несколько параметров и на их основе выводятся данные.
В Листе все выводится правильно. Но обращение к data.myParams в итемрендерере по Creation Complite выводит полную ерунду - данные путаются, сдвигаются по позициям. При этом ДатаПровайдер остается неизменным.
Десять раз все перепроверил.
Подскажите, плиз, где искать ошибку?

trng 17.10.2011 14:17

Что за элементы в ArrayCollection?

Astraport 17.10.2011 14:28

Объекты с разными свойствами.

Добавлено через 5 минут
Ещё добавлю. Вообще элементов в массиве 8, выводится в листе 8 объектов, а creation complite вызывается только 7 раз.

trng 17.10.2011 14:43

для начала посмотрите что у вас попадает в itemrenderer:

Код AS3:

protected function itemrenderer1_creationCompleteHandler(event:FlexEvent):void{
        var s:String = '  ';
        for (var prop in data)
                s += prop + '=' + data[prop] + ' ; ';
        trace('type: ', typeof data, s);
}


Astraport 17.10.2011 14:44

В общем нашел решение проблемы. Нужно оверрайдить данные в итем рендерер.
Примерно так:
Код AS3:

override public function set data(value:Object):void {      
                                        if(value != null)  {
                                                super.data = value;
                                                //тут определить все нужные данные
                                        } 
                                        dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
                                }

Добавлено через 1 минуту
trng, спасибо.
Я все это уже смотрел. Ерунда полная выводилась. Решение выше.

trng 17.10.2011 14:51

Ясно. Был включен useVirtualLayout?

Astraport 17.10.2011 15:15

Нет, не был.

billion 18.10.2011 08:45

Столкнулся с такой же проблемой.... список ведёт себя нормально, но вот его Items прыгают куда хотят... помогите прикрутить данный код плиз.... это надо отдельный класс создавать для ItemRenderer? у меня щас всё через компоненты mxml работает

Astraport 18.10.2011 11:22

Пихайте код из сообщения № 5 в MXML реализующий ваш ItemRenderer.
Ну или приводите свой код.

billion 18.10.2011 12:25

как-то странно себя ведёт эта штуковина.... то глючит, то не глючит....

кстати код на 450 строк.... пока не оптимизировал....попробую сначала воспроизвести последовательность при которой Итемсы скачут кто-куда.... если не удастся решить проблему, выложу код сюда


Часовой пояс GMT +4, время: 07:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.