J'ai un code dans Flex 4 comme celui-ciprofondeur AGILITY avec 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>
Principalement il est un MX: Canvas qui a l'intérieur reapeaters pour plusieurs composants personnalisés que j'ai créé. La plupart de ces composants personnalisés sont comme ceci:
<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)" >
Tout fonctionne très bien (x, y, largeur, hauteur, rotation), sauf pour la profondeur!
il semble que quel que soit le numéro, il montre l'ordre dans lequel il a été rendu dans le conteneur parent. (MX: Toile)! Ce que je veux réaliser c'est que les uns par rapport aux autres, tous les éléments dans le mx: Canvas montre dans l'ordre de "profondeur" qui leur est assigné.
Comment faire?
Merci pour la recommandation. La principale raison pour laquelle j'ai utilisé répéteur est parce que c'est pratique lors de l'ajout/suppression/mise à jour d'un élément à une liste. J'ai plusieurs éléments d'affichage sur une page que j'ajoute/supprime/mise à jour souvent, donc je ne savais pas comment m'assurer à chaque fois que je change ArrayCollection de ce type qu'il va afficher à l'écran? En outre, comment choisir rendu spécifique (Composant personnalisé) pour chaque type d'élément? – Tam
Tout ce dont vous dites avoir besoin peut être fait avec une classe basée sur la liste. Une classe basée sur une liste sera mise à jour lors de la mise à jour de dataProvider.Les classes basées sur une liste peuvent prendre en charge des moteurs de rendu personnalisés (composants AKA); et vous pouvez écrire une logique pour changer radicalement l'affichage en fonction des données. Tant que vos données aussi longtemps que vous liez votre dataProvider [comme vous le faites avec le répéteur], la classe de la liste de données sera mise à jour au besoin. Mais, une classe de liste ne rendra que ce qui est actuellement affiché visuellement à l'écran sans avoir besoin de rendre un composant pour tout ce qui se trouve dans votre dataProvider. Cela pourrait conduire à moins d'utilisation de la mémoire. – JeffryHouser
Merci @ www.Flextras.com Je pense que j'ai eu l'idée que je vais essayer. Un lien ou un exemple de code rendrait certainement les choses un peu plus faciles. – Tam