2014-08-29 1 views
0

Я работаю над списком FLEX/AIR Spark, в котором представлена ​​коллекция изображений с различной шириной и высотой.Доступ к данным макета из itemrenderer

Я использую пользовательский макет, который работает следующим образом:

  • решить, сколько изображений может быть пригодным в текущей строке в зависимости от их ширины.

  • оправдывает их таким образом, что первое изображение в строке подчиняется «левому» краю, а последнее изображение в строке подчиняется «правильному» краю, поэтому с «верхним» и «нижним», как указано в пользователь, скажем, 10 пикселей.

  • В качестве примера, предположим, что текущая строка имеет 4 изображения, изображения 1 & 4 будут иметь по 10 пикселей в качестве «левого» поля «справа» соответственно. Но левый и правый промежутки между 1-2, 2-3 & 3-4 будут одинаково разделены на основе различной ширины.

  • Теперь я хотел бы нарисовать фон, который заполнит динамическую область. Пожалуйста, смотрите изображение ниже, чтобы получить представление о том:

Layout requirement Image

** В изображении Серая зона является фоном, я хотел бы рисовать, а цветные прямоугольники представляют образы разной ширины и высота. **

  • «rowHeight» является переменной, основанной на максимальной высоте отдельных изображений внутри строки.

Вопросы:

а) Теперь я хотел бы обратить фон (см серую область в ПОС), которая заполняет область фона списка. Я знаю текущую ширину элемента & height, но я не знаю, что rowHeight определяется макетом, левым и правым полями между изображениями.

Что-то вроде:

bgRect:Rectangle = new rectangle (0, 0, (imgWidth + (LeftMargin/2) + (Right Margin/2)), rowHeight) 

б) Как/где должен фон быть реализован? если я добавлю область BG в рендеринг элемента на основе макета, снова будет рассмотрен макет.

ответ

0

Дети должны быть добавлены в метод createChildren. Рисование (покраска) фона должно происходить в методе updateDisplayList.

+0

Здравствуйте, , Спасибо за ваш ответ. Суть вопроса заключается в том, что необходимо создать фоновый прямоугольник, соответствующий информации о макете, от выравнивания изображений с разными разрешениями с различными значениями rowHeights. Мне нужно рассчитать границы текущего фонового прямоугольника с ширины и высоты предыдущего изображения строки и рядом с ним ....Как получить доступ к этой информации, связанной с макетом, из элемента itemRenderer? –

0

Вы можете передавать данные своим поставщикам товаров через фабрику itemrenderer. См. - Flex - Sending a parameter to a custom ItemRenderer?.

var productRenderer: ClassFactory = new ClassFactory (ProductRenderer); productRenderer.properties = {showProductImage: true}; myList.itemRenderer = productRenderer;

+0

Здравствуйте, , Спасибо за ваш ответ. См. Мой комментарий к , это меньше о посылке параметров itemRenderers, но доступ к информации о макете из элемента itemRenderer. Благодарю. –