foreground пишет:
> Подскажите как решается проблема.
> Т.е. есть какие-то визуальные элементы со своими размерами и
> координатами. Есть прямоугольная видимая скролируемая область.
> --~--~---------~--~----~------------~-------~--~----~
>
foreground пишет:
> Допустим данные интерактивные. Это не просто битмап.
>
> --~--~---------~--~----~------------~-------~--~----~
>
>>Используй подобие CellRenderer - графика ячейки создается - только, если она видна.
Это самый грамотный вариант, но трудоемкий.
И еще есть один вариант:
>>Не использую скрол, юзай пейджинг (разделение контента на страницы а ля форум-стайл)
Но б-таки заморочился и написал CellRenderer.
______________
Jloa.
function redraw()
{
clearPane();
for (var a = 0; a < A; a++)
{
for (var b = 0; b < B; b++)
{
el = fullData[a][b];
if ((scrollOff.x > el.rect.right) || (scrollOff.x + paneW < el.rect.x))
continue;
if ((scrollOff.y > el.rect.bottom) || (scrollOff.y + paneH < el.rect.y))
continue;
createElement(el);
}
}
}
Тормозит непадецки, хотя элементы не очень графикой нагружены.
> Тормозит непадецки, хотя элементы не очень графикой нагружены.
Дык, я так понимаю сорировка происходит с элементами UI... omg
Попробуйте так:
claer() // или как вы там его обозвали; метод "очистки"
filterData() // фильтруем данные
createUI() // рендерим отфильтрованные данные
______________
Jloa.
redraw() // должен тупо рендерить модель, а не шаманить с ней :)
и лагает т.к. айтемов у вас рендериться 2000 за раз - зачем столько?
Они все видны сразу? Думаю, нет. Вот о том и речь, что нужно написать
CellRender, который будет рендерить только то, что видно.
Кстати, лучше шаманить, мне кажется с моделью.
______________
Jloa.
Условие сортировки вы видимо не увидили:
if ((scrollOff.x > el.rect.right) ||
(scrollOff.x + paneW < el.rect.x))
continue;
if ((scrollOff.y > el.rect.bottom) ||
(scrollOff.y + paneH < el.rect.y))
continue;
CellRenderer не должен заниматься сортировкой по логике.
не в давался в код, да и все равно ничего не понятно :)
Смотря, что понимать под "CellRenderer" - в моем понимание это не UI,
а логика.
______________
Jloa.
сортировки. Хочется сделать компоненту раз и надолго.