Flex для мобильных устройств: можно ли сделать элементы списка прозрачными? - PullRequest
0 голосов
/ 13 марта 2012

Возможно ли во Flex (для мобильных приложений) отображать элементы списка с прозрачным фоном?

Мой дизайн приложения включает фон, который должен оставаться видимым.

Я попытался установить для contentBackgroundAlpha значение 0, но это не влияет на средства визуализации элементов. Кроме того, я пробовал alternatingItemColors = "[0xffffffff, 0xffffffff]", но они все еще непрозрачны.

Есть ли другой обходной путь? Это вообще возможно?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2015

Вот моя реализация:

1) Добавьте это в свой пользовательский IconItemRenderer для списка:

override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
        {

            if (itemIndex % 2 == 0)
            {
                graphics.beginFill(0xFFFFFF, 0);
                graphics.lineStyle();
                graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                graphics.endFill();
            }
            else
            {
                // transparent background for hit detection
                graphics.beginFill(0x004f94, 0.1);
                graphics.lineStyle();
                graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                graphics.endFill();
            }

            opaqueBackground = null;

            if (selected) 
            {
                // transparent background for hit detection
                graphics.beginFill(0x004f94, 0.2);
                graphics.lineStyle();
                graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                graphics.endFill();
            }
        }

2) Добавьте это в свой список свойств:

contentBackgroundAlpha="0.5"
alpha="0.5"
0 голосов
/ 13 мая 2012

Я думаю, что вы ищете свойство: contentBackgroundAlpha="0"

и затем в вашем ItemRenderer:

            override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
            {
                // transparent background for hit detection
                graphics.beginFill(0xFFFFFF, 0);
                graphics.lineStyle();
                graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                graphics.endFill();

                // turn off opaqueBackground since this renderer has some transparency
                opaqueBackground = null;

                if (selected || hovered) {
                    this.setStyle('color', 0x94734D);
                }
            }

        ]]>
    </fx:Script>
...