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

ActionScript 3 Discussion :

Drag and drop


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut Drag and drop
    Bonsoir,

    J'ai besoin d'aide.

    J'ai un slider composé de clip (nommé picg1 jusqu'au picg10). Lorsque j'appuie sur la flèche du haut, ils de déplacent tous vers le haut et lorsque j'appuie sur la flèche du bas ils redescendent.

    Je peux également les déplacer. Lorsque je relache le clip déplacer, il revient à sa position initiale.
    Lorsque je relache un des clip sur la zone (carré rouge nommé zoneVisage), celui-ci prend les coordonées de la zone et s'aimante à celle-ci.

    Je rencontre à l'heure actuelle deux problèmes.

    - J'aimerai que lorsqu'un clip est sur la zone (carré rouge) et que je redéplace un autre clip par dessus, le premier retourne à sa position initiale (afin donc de laisser la place au second clip). Est-ce possible ?

    - Je souhaiterai également que lorsque je redéplace le clip, préalablement posé sur la zone, celui-ci reprenne sa position initiale. A cette heure-ci, il reste "colé" aux coordonnées de la zone...

    Merci de votre aide Je vous joins le fla., les classe greenSock (le pack est presque complet pour ceux que ça intéresse) et le code.
    Bonne soirée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    stop();
    //Import class GreenSock
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.display.MovieClip;
    import com.greensock.*;
    import com.greensock.easing.*;
    import com.greensock.plugins.*;
     
    //Calculer le pas pour bloquer le slider
    var pasSliderG:Number=0;
    var pasSliderD:Number=0;
    //Mask fleches haut et bas
    cashHG.visible=false;
    cashBG.visible=false;
     
    //Bt Fleche HG et BG
    flecheHG.buttonMode=true;
    flecheBG.buttonMode=true;
    flecheHG.addEventListener(MouseEvent.CLICK,monteSliderG);
    flecheBG.addEventListener(MouseEvent.CLICK,decentSliderG);
    //Slider monte sliderG
    function monteSliderG(e:MouseEvent){
            TweenLite.to(picg1, 1, {y:picg1.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg2, 1, {y:picg2.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg3, 1, {y:picg3.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg4, 1, {y:picg4.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg5, 1, {y:picg5.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg6, 1, {y:picg6.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg7, 1, {y:picg7.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg8, 1, {y:picg8.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg9, 1, {y:picg9.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    TweenLite.to(picg10, 1, {y:picg10.y-121.35, ease:Back.easeInOut, onComplete:MyFunction2});
    //Pas +1
    pasSliderG = pasSliderG + 1;
    //Pour éviter d'appuyer plusieurs fois
    flecheHG.removeEventListener(MouseEvent.CLICK,monteSliderG);
    startX = currentClip.x;
    startY = currentClip.y;
    cashBG.visible=false;
    if (pasSliderG==3) {
      cashHG.visible=true;
    }
    }
    //Slider descend sliderG
    function decentSliderG(e:MouseEvent){
                    TweenLite.to(picg1, 1, {y:picg1.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg2, 1, {y:picg2.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg3, 1, {y:picg3.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg4, 1, {y:picg4.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg5, 1, {y:picg5.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg6, 1, {y:picg6.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg7, 1, {y:picg7.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg8, 1, {y:picg8.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg9, 1, {y:picg9.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      TweenLite.to(picg10, 1, {y:picg10.y+121.35, ease:Bounce.easeOut, onComplete:MyFunction2});
      pasSliderG = pasSliderG - 1;
      flecheBG.removeEventListener(MouseEvent.CLICK,decentSliderG);
      cashHG.visible=false;
      if (pasSliderG==-3) {
      cashBG.visible=true;
    }
    }
    //Remet les écouteurs en route une fois le tween effectué
    function MyFunction2() {
    flecheHG.addEventListener(MouseEvent.CLICK,monteSliderG);
    flecheBG.addEventListener(MouseEvent.CLICK,decentSliderG);
    }
    //Drag & Drop
    //Positions de départ de l'objet courant
    var startX:Number;
    var startY:Number;
    var currentClip;
    //position de la zone où l'on drop l'objet
    var endX:Number = 576;
    var endY:Number = 300;
    picg1.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg2.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg3.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg4.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg5.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg6.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg7.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg8.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg9.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    picg10.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
    function appuie(evt:MouseEvent):void {
    currentClip = evt.currentTarget;
     
    //currentClip toujours au premier plan
    setChildIndex(currentClip as DisplayObject, numChildren - 1);
     
    startX = currentClip.x;
    startY = currentClip.y;
     
    currentClip.startDrag();
     
    currentClip.addEventListener(MouseEvent.MOUSE_UP,relache);
    }
    function relache(evt:MouseEvent):void {
      currentClip = evt.currentTarget;
     
      currentClip.stopDrag();
     
      if(currentClip.hitTestObject(zoneVisage)) {
       trace("yo");
       currentClip.x = endX;
       currentClip.y = endY;
       flecheHG.removeEventListener(MouseEvent.CLICK,monteSliderG);
       flecheBG.removeEventListener(MouseEvent.CLICK,decentSliderG);
             }
             else {
              currentClip.x=startX;
              currentClip.y=startY;
              flecheHG.removeEventListener(MouseEvent.CLICK,monteSliderG);
              flecheBG.removeEventListener(MouseEvent.CLICK,decentSliderG);
    Fichiers attachés Fichiers attachés

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. "Drag and drop" avec directinput
    Par batosai dans le forum DirectX
    Réponses: 1
    Dernier message: 16/06/2004, 16h48
  3. [VB.NET] Microsoft TreeView drag and drop ?
    Par bigtoof dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/05/2004, 14h50
  4. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  5. 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