Ошибка прокрутки растрового изображения с большими контейнерами. Flex 3.6

У меня такой сценарий:

Я создаю HBox шириной 1000000 пикселей (один миллион пикселей в ширину).

этот большой HBox находится внутри другого маленького HBox шириной 1000 пикселей.

<mx:HBox id="small" width="1000" >
   <mx:HBox id="big" width="1000000" />     
</mx:HBox>

Внутри этого большого HBox я создаю растровое заполнение простого изображения, это просто узор из линий.

проблема в том, что полоса прокрутки маленького бокса не работает, она просто останавливается на полпути, ползунок полосы прокрутки продолжает работать, но прокрутка останавливается, и конец большого бокса не достигается.

Кто-нибудь знает обходной путь для этого? Заранее спасибо. Вот часть кода, которая выполняет растровое заполнение:

var shape:Shape = new Shape();
shape.graphics.lineStyle(2, 0x008800);
shape.graphics.drawRect(0,0,100, 100);

var bd:BitmapData = new BitmapData(0, 100, true, 0x00000000);
bd.draw(shape);

small.graphics.clear();
small.graphics.beginBitmapFill(bitmapData);             
small.graphics.drawRect(0,0,width, 400);
small.graphics.endFill();

person tony    schedule 07.07.2011    source источник
comment
Почему у вас что-нибудь на миллион пикселей?!? Кроме того, существуют ограничения для Flash Player.   -  person J_A_X    schedule 07.07.2011
comment
это что-то вроде настраиваемой диаграммы истории, в ней будет история определенных событий, и на дисплее будет отображаться МНОГО лет данных   -  person tony    schedule 07.07.2011
comment
Наличие большого количества данных не означает, что вам нужно обрабатывать их все одновременно. Зачем вам рендерить то, чего не видит пользователь?   -  person J_A_X    schedule 07.07.2011
comment
Кроме того, если вы используете Flex, почему бы не использовать диаграммы, которые там уже есть, или использовать сторонние онлайн-диаграммы?   -  person J_A_X    schedule 07.07.2011
comment
вы правы, просто компонент уже создан, и мне нужно это исправить, и я подумал, можно ли найти простой обходной путь для этого. Поскольку это настраиваемый компонент, мне нужно было бы запрограммировать всю логику, чтобы скрыть невидимую информацию, а это заняло бы у меня много времени. Но что ж, я просто хочу знать, есть ли возможное решение для этого.   -  person tony    schedule 07.07.2011
comment
Извините, нет. Пользовательский компонент или нет, я никогда не видел, чтобы рисовалось что-нибудь, которое не просматривается пользователем по соображениям производительности. Вам нужно переосмыслить / переделать свой компонент или просто использовать то, что доступно.   -  person J_A_X    schedule 07.07.2011
comment
Нет, даже если бы это было возможно (а это не так), я согласен с Джаксом - это плохая идея. У вас есть представление о том, сколько памяти потребляет 1 миллион x 1 миллион растровых изображений, не говоря уже об обработке? 10 квадриллионов пикселей, если бы это было возможно? :)   -  person Nate    schedule 08.07.2011


Ответы (1)


Как мне все говорили, подход, который я пытаюсь разработать, невозможен и действительно не рекомендуется. Но, как указывает Adobe, flash 11 удалит ограничения по размеру, поэтому, если вы хотите сделать что-то вроде большого растрового изображения, которое я хотел создать, вам придется подождать flash 11

person tony    schedule 14.07.2011