我在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