我在Flex 4的一个这样的代码深度处理使用Flex 4
<!-- START >>> middle part: items -->
<mx:Canvas id="itemContainer"
width="100%"
height="100%">
<!-- START >>> Items Display on the page -->
<mx:Repeater id="richTextReapeater"
dataProvider="{_model.current_day.richTextNotes}">
<components:RichTextNoteDisplay theNote="{richTextReapeater.currentItem}" />
</mx:Repeater>
<mx:Repeater id="postItReapeater"
dataProvider="{_model.current_day.positNotes}">
<components:PostItNoteDisplay theNote="{postItReapeater.currentItem}" />
</mx:Repeater>
......
</mx:Canvas>
主要是它的一个MX:帆布具有里面reapeaters为我创建了多个自定义组件。大多数这些自定义组件是这样的:
<s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
x="{theNote.x}"
y="{theNote.y}"
width="{theNote.width}"
height="{theNote.height}"
depth="{theNote.depth}"
rotation="{theNote.rotation}"
creationComplete="skinnablecontainer1_creationCompleteHandler(event)" >
一切工作正常(x,y,宽度,高度,旋转),除了深度!
似乎无论数字是什么,它显示为它在父容器中呈现的顺序。 (MX:帆布)!
我想获得的是相对于彼此,mx:Canvas中的所有项目都按分配给它们的“深度”顺序显示。
我该怎么做?
谢谢你的建议。我一直使用中继器的主要原因是因为添加/删除/更新项目到列表是很方便的。我有多个页面上的显示项目,我经常添加/删除/更新,所以我不确定如何确保每次更改该类型的ArrayCollection时它都会在屏幕上呈现?另外,如何为每种类型的物品选择特定的渲染(自定义组件)? – Tam 2010-07-17 21:33:44
你说你需要的一切都可以用基于列表的类来完成。当dataProvider更新时,基于列表的类将会更新。基于列表的类可以支持自定义渲染器(AKA组件);并且您可以根据数据编写逻辑来大幅改变显示。只要你的数据和绑定你的dataProvider [就像你使用Repeater一样],数据列表类将根据需要进行更新。但是,列表类只会呈现当前在屏幕上直观显示的内容,而不需要为dataProvider中的所有内容呈现组件。这可能会导致更少的内存使用量。 – JeffryHouser 2010-07-17 22:15:16
谢谢@ www.Flextras.com我认为我有这个想法,我会给它一个镜头。链接或示例代码肯定会让事情变得更容易一些。 – Tam 2010-07-17 23:11:43