Flex Spark List组件项目顺序

时间:2011-10-17 18:25:54

标签: flex list sorting actionscript

我有一个常规的火花列表,在没有使用项目渲染器时可以正确排序。但是,当使用以下项呈示器时,列表将随机播放并显示列表的先前实例中的项。任何帮助将不胜感激。

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
                xmlns:s="library://ns.adobe.com/flex/spark"
                xmlns:mx="library://ns.adobe.com/flex/mx"
                autoDrawBackground="true"
                creationComplete="itemRendererInit(event)">

<fx:Script>
    <![CDATA[
        import flash.utils.setInterval;

        import flashx.textLayout.conversion.TextConverter;

        import mx.events.FlexEvent;

        protected function itemRendererInit(event:FlexEvent):void {
            setInterval(resizeItemRenderer, 50);
            richtext.textFlow= TextConverter.importToFlow(
                '<TextFlow xmlns="http://ns.adobe.com/textLayout/2008"><linkNormalFormat color="#ac0000" textDecoration="none"/><linkHoverFormat color="#ac0000" textDecoration="underline"/><linkActiveFormat color="#ac0000" textDecoration="none"/><p><span fontWeight="bold">' +
                data[0].toString() +
                ':</span><br/><br/>' +
                data[1].toString() +
                '</p></TextFlow>', TextConverter.TEXT_LAYOUT_FORMAT);
        }

        private function resizeItemRenderer():void {
            richtext.width = parentApplication.width-525;
        }
    ]]>
</fx:Script>

<s:RichEditableText id="richtext"
            paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"
            verticalAlign="middle" editable="false" textAlign="left"/>

</s:ItemRenderer>

2 个答案:

答案 0 :(得分:0)

在我的脑海中,尝试重写commitProperties而不是依赖creationComplete事件。在creationComplete上,只需调用invalidateProperties然后从commitProperties()调用您的函数。

答案 1 :(得分:0)

我最终发现它是一个数据绑定问题。谢谢@ M.D。