Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2012, 22h28   #1
Invité de passage
 
Inscription : mai 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 17
Points : 2
Points : 2
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 :
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
Type de fichier : rar com.rar (532,6 Ko, 0 affichages)
Type de fichier : swf protodragetdrop.swf (45,5 Ko, 0 affichages)
Type de fichier : fla protodragetdropcs4.fla (161,0 Ko, 0 affichages)
Boogzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h46.


 
 
 
 
Partenaires

Hébergement Web