IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MXML Discussion :

Coverflow+Repeater+Drag&Drop = ?


Sujet :

MXML

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Résolu] Coverflow+Repeater+Drag&Drop = ?
    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, ....

    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>
    Bref, pour faire court : au secours

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    J'ai une remarque à deux balles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:Canvas id="repeater_coverflow.currentIndex"
    me semble que cela ne va pas marcher... on ne peux pas à priori créer d'identifiants dynamiquement... je crois m'être tapé la tete contre les murs avec ce truc...

    J'ai arrêté les repeaters depuis et je fais tout en AS3

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Ok, en fait j'ai trouvé la solution à mon problème.
    On peut récupérer la données dynamiquement en utilisant l'event :

    Action Script
    voir codecopier dans le presse papierimprimer?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mouseMove="dragIt(event, event.currentTarget.instanceIndices)"
    permet de récupérer l'instance de la carte draguée.
    Par extension, on peut également faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mouseMove="dragIt(event, event.currentTarget.getRepeaterItem())"
    pour récupérer l'objet cliqué, et éventuellement une méthode getteur si c'est un objet qu'on a définit soi-même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  3. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo