Apache flex 动作脚本3和自定义图像项渲染器

Apache flex 动作脚本3和自定义图像项渲染器,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我有一个自定义项目渲染器,它根据数据对象的数据值在行中显示不同的gif。当我使用绝对路径设置图像源url而不嵌入时,效果很好。但是当我嵌入图像时,我发现当我在网格上上下滚动时,图像会变得混乱,有时会相互重叠 有人知道为什么在我的hbox项目渲染器中嵌入图像会引起这么多麻烦吗 代码 在项目呈现器中,尝试覆盖数据设置器,当您在碰巧使用的数据绑定控件中导航时,SDK会为数据提供程序中的每个项目隐式调用该数据设置器,并从中设置图像的源属性,如下所示: <mx:List dataProvider="

我有一个自定义项目渲染器,它根据数据对象的数据值在行中显示不同的gif。当我使用绝对路径设置图像源url而不嵌入时,效果很好。但是当我嵌入图像时,我发现当我在网格上上下滚动时,图像会变得混乱,有时会相互重叠

有人知道为什么在我的hbox项目渲染器中嵌入图像会引起这么多麻烦吗

代码


在项目呈现器中,尝试覆盖数据设置器,当您在碰巧使用的数据绑定控件中导航时,SDK会为数据提供程序中的每个项目隐式调用该数据设置器,并从中设置图像的源属性,如下所示:

<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可能试图重用渲染器的可视元素,但没有意识到您的意图是在数据更改时将它们替换掉。通过在设置数据项时执行操作,您可以更明确地控制渲染器的可视元素发生了什么


希望有帮助

在什么情况下设置图像?我已经覆盖了set data方法。我想不出是什么原因导致了这个问题,可以试着多发布一些代码;你发布的内容并不能充分说明这个故事,除了猜测问题可能是什么之外,你无法做更多的事情。
<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>