сценарий действия 3 и средства визуализации пользовательских изображений

У меня есть настраиваемое средство визуализации элементов, которое отображает другой gif в строке в зависимости от значения данных из объекта данных. Когда я устанавливаю URL-адрес источника изображения, используя абсолютный путь, а не встраивая, он работает нормально, однако, когда я встраиваю изображения, я обнаруживаю, что при прокрутке вверх и вниз по сетке изображения спутываются и иногда располагаются друг над другом.

Есть ли у кого-нибудь идеи о том, почему встраивание изображений в мой рендерер элементов hbox вызывает такие хлопоты;

код

public var equipment:Image;
public var compr_icons:Bitmap = new AssetManager.COMPUTER_ICON;

.. do some logic
equipment.addChild(compr_icons);

person cdugga    schedule 25.06.2009    source источник
comment
На какое событие вы устанавливаете изображение?   -  person bug-a-lot    schedule 25.06.2009


Ответы (1)


В вашем средстве визуализации элементов попробуйте переопределить установщик data (который неявно вызывается SDK для каждого элемента в вашем dataProvider, когда вы перемещаетесь по любому элементу управления с привязкой к данным, который вы используете) и установите свойство изображения source оттуда, например так:

<mx:List dataProvider="{yourDataSource}">
    <mx:itemRenderer>
        <mx:Component>
            <mx:HBox>

                <mx:Script>
                    <![CDATA[

                        override public function set data(value:Object):void
                        {
                            super.data = value;

                            // Set your values here (value contains your data item)
                            myImage.source = value.yourImageSourceInstance;
                            myLabel.text = value.yourLabelText;
                        }

                    ]]>
                </mx:Script>

                <mx:Image id="myImage" />
                <mx:Label id="myLabel" />

            </mx:HBox>
        </mx:Component>
    </mx:itemRenderer>
</mx:List>

... и посмотрите, поможет ли это. Flex, вероятно, пытается повторно использовать визуальные элементы средства визуализации, не понимая, что вы намерены поменять их местами по мере изменения данных. Приняв затем действие (когда элемент данных будет установлен), вы сможете более четко контролировать то, что происходит с визуальными элементами средства визуализации.

Надеюсь, это поможет!

person Christian Nunciato    schedule 25.06.2009
comment
Я уже переопределил метод набора данных. не могу понять, что вызывает проблему - person cdugga; 25.06.2009
comment
Может быть, тогда попробуйте опубликовать еще немного кода; то, что вы опубликовали, недостаточно описывает историю, чтобы можно было сделать гораздо больше, чем предположить, в чем может быть проблема. - person Christian Nunciato; 25.06.2009