Bonjour à tous,
j'essaye d'utiliser un composant Flex, le coverflow, afin d'afficher des textes dans des covers, créant ainsi des "cartes".
Je pars d'un tableau contenant des strings (le texte de mes cartes), ensuite, le composant coverflow n'ayant pas la propriété
dataProvider, j'ajoute dedans un repeater, au sein du quel je met un conteneur contenant le texte correspondant à l'index courrant du tableau
(propriété CurrentIndex du repeater).
Jusque là, tout va bien, j'ai bien mon coverflow qui est maintenant dynamique, et il affiche le bon nombre de covers par rapport au tableau.
Sauf que, maintenant, je veux ajouté le drag&drop. Après avoir utiliser diverses méthodes qui ne conviennent pas, j'ai décidé de le programmer manuellement. Pour cela, je créer une fonction DragIt que j'assigne à la propriété mouseMove du conteneur dans le repeater. J'ai besoin de passé un paramètre soit un chiffre, correspondant à la case de mon tableau où je dois chercher le texte, soit un string, contenant directement le text.
Pour cela, j'utilise soit de nouveau la propriété CurrentIndex de mon Repeater, soit la propriété CurrentItem.toString().
Et là, problème !!!
Cela ne fonctionne pas.
Aussi bête que cela est, c'est un problème de syntaxe, qui fait que je n'arrive pas à passer en paramètre de ma fonction les paramètres monRepeater.currentIndex, ou monRepeater.currentItem. Cela me met une erreur.
Mon code, avec en gras souligné la "zone rouge" :
J'ai essayé toutes les syntaxes que je pensais possibles, avec crochets, accolades, etc...pas moyen.
Une idée ?
L'accès à currentIndex se fait correctement dans l'objet "Text", mais pas dans l'objet "Canvas", une idée de la façon dont je peux
passer dynamiquement ce satané chiffre ?
J'ai également essayé d'appeler une méthode incrémentant une variable a chaque event "repeat" de mon repeater, pour ensuite passer cette variable dans ma fonction, mais apparemment, le repeater a un fonctionnement singulier, puisqu'il passe systématiquement le chiffre maximum (le nombre d'incrémentation) au lieu de faire 1, 2, 3, ....
Bref, pour faire court : au secours
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <containers:CoverFlowContainer id="coverflow" width="100%" height="100%" horizontalGap="40" segments="6" reflectionEnabled="true"> <mx:Repeater id="repeater_coverflow" dataProvider="{tabCartes}"> <mx:Canvas id="repeater_coverflow.currentIndex" width="200" height="120" backgroundColor="#ffffff" mouseMove="dragIt(event, repeater_coverflow.currentIndex)"> <mx:Text width="100" text="{repeater_coverflow.currentItem.toString()}" x="50" y="10"/> </mx:Canvas> </mx:Repeater> </containers:CoverFlowContainer>
Partager