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

Flash Discussion :

problème de stopDrag sur une zone définie


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 28
    Points
    28
    Par défaut problème de stopDrag sur une zone définie
    Bonjour,

    Profane en actionscript, j'ai crée un clip auquel j'ai affecté un script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mc_bt1.onPress=function() 
    { 
    mc_bt1.startDrag(); 
    } 
    mc_bt1.onRelease=function() 
    { 
    mc_bt1.stopDrag() 
     
    mc_bt1.onPress=function(){mc_bt1.startDrag();}mc_bt1.onRelease=function(){mc_bt1.stopDrag()}


    Ceci me permettant donc de le déplacer sur la scène. Je voudrais maintenant pouvoir faire en sorte que lorsqu'on le dépose dans une zone de la scène, il se place directement à des coordonnées spécifiées (je souhaite en effet le faire revenir à sa position d'origine lorsqu'on fait un stopDrag à proximité de la zone en question).

    Quelqu'un aurait-il une aide ?

    Encore merci,

    L.C.
    Haut de page Répondre

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    voici un bout de code pour t'aider, en sachant que j'ai simplement joué sur les valeurs de coordonnées du clip "zone" comme point de référence...

    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
     
    monclip.onPress = function(){
    	monclip.startDrag();
    }
    var coordx
    var coordy
     
    coordx = zone._x;
    coordy = zone._y;
    coordx = coordx-60;
    coordy = coordy-60;
     
    monclip.onRelease = function(){
    	trace(monclip._x);
    	if (monclip._x<=coordx or monclip._y<=coordy){
    	monclip._x = 60;
    	monclip._y = 60;
    	}else{
    		monclip._x = 300;
    		monclip._y = 200;
     
    }
     
    	StopDrag();
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    ooups, j'ai oublié de signaler que les deux clips "monclip" et "zone" sont tous les deux en 120 x 120, pour que si le monclip n'arrive pas au moins à la moitié des coordonnées du clip zone, il revienne à l'emplacement initial

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Merci tout d'abord pour ce bout de code.

    Mais j'ai plusieurs problèmes.

    Premièrement je n'arrive pas à définir la zone d'origine et donc de drop off lorsque je lache mon clip. A chaque fois, le clip se trouve à l'origine dans la même zone et se retrouve toujours dans une autre lorsque je relache la souris, et ce, quelque soient mes modifications de coordonnées. J'aimerais comprendre...

    D'autre part, quelque soit la zone dans laquelle je relache mon clip, il ne reste pas stable, il repart à l'endroit indiqué. Or je voulais qu'en dehors de la zone d'origine, quand il est déposé, il se positionne à l'endroit indiqué.

    Là aussi je voudrais comprendre...

    Je suis désolé, je suis complètement néophyte et profane en la matière

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    la zone d'origine est un clip que j'ai nommé clip (occurence), et donc ce clip a également des coordonnées.

    ici, l'exemple que j'ai donné fait revenir l'objet à son emplacement d'origine s'il n'est pas au moins à la moitié des coordonnées du clip zone

    si le clip zone est à 300 en x et 200 en y, il faut que le clip qui est en drag soit au moins à 240 en x et 140 en y pour qu'il se mette à l'endroit indiqué (dans ce cas précis, 300 en x et 200 en y)

    c'est plus clair?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Coolos merci beaucoup !!!

    J'ai modifié quelque peu le code (pour les coordonnées bien sûr).

    Voilà le résultat final :

    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
    monclip.onPress=function()
    {
    monclip.startDrag();
    }
    monclip.onRelease=function()
    {
    monclip.stopDrag()
    }
    monclip.onPress = function(){
    	monclip.startDrag();
    }
    monclip.onPress = function(){
    	monclip.startDrag();
    }
     
     
    var coordx
    var coordy
     
    coordx = zone._x;
    coordy = zone._y;
    coordx = coordx-0;
    coordy = coordy-100;
     
    monclip.onRelease = function(){
     
    	if (monclip._x<=coordx or monclip._y<=coordy){
    	monclip._x = 200;
    	monclip._y = 200;
    	}else{
    		monclip._x = 467;
    		monclip._y = 650;
     
    }
     
    	StopDrag();
    }
    J'y retourne pour compléter ma démo, je communiquerai le lien final

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

Discussions similaires

  1. problème sur une zone 'forward' de BIND
    Par bouxroute dans le forum Réseau
    Réponses: 10
    Dernier message: 25/04/2013, 12h30
  2. se déplacer sur une zone de liste
    Par bb62 dans le forum IHM
    Réponses: 12
    Dernier message: 31/01/2005, 10h47
  3. probléme de cadre sur une image qui me sert de lien
    Par thomas_chamas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/11/2004, 17h36
  4. Problème de chaine sur une page HTML
    Par Kerod dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2004, 16h23
  5. Réponses: 17
    Dernier message: 25/03/2003, 13h45

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