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 :

duplication et drag and drop


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut duplication et drag and drop
    Bonjour,

    j'ai un clip à l'écran, et je voudrais que lorsque je clique dessus, il me crée une nouvelle occurence de ce clip que je puisse drag&dropper. La il me crée l'occurence, je la drag, mais il ne veut pas la relacher et le clip suit ma souris.
    voici mon code, le clip est juste un rectangle simple pour exemple qui s'appelle viewer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    on (press) {
    duplicateMovieClip(viewer, "viewer_mc", this.getNextHighestDepth());
     
    startDrag ("viewer_mc", true);
     
    }
    on (releaseOutside) {
    stopDrag();
     
    }
    le code se trouve sur le clip dans la séquence principale.

  2. #2
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    Salut,

    mmmh quelques mises au point sont à faire La tu fait du code Flash 5, c'est pas vraiment top ! Déjà on utilise plus les on(...) et autre onClipEvent(...). On nomme le clips et on fait monClip.onRelease par exemple. Ensuite, utilise la synthaxe pointée : monClip.duplicateMovieClip("nouveauClip", 0) et pareil pour le startDrag Corrige déjà cela et n'hésite pas à demander si tu bloques ^^

    @++
    Libzippp (C++)
    Lost in AStorm

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    ok, maintenant j'ai ce code sur la sequence et plus rien sur mon clip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var i=0;
    this.viewer.onPress=function(){
    viewer.duplicateMovieClip(_root["viewer_mc"+i], this.getNextHighestDepth());
     
    viewer.startDrag ();
    }
    this.viewer.onRelease=function() {
    viewer.stopDrag();
    i=i+1
    }
    Mon clip se duplique, je peux déplacer "viewer". mais si je reclique, mon premier duplicata s'efface et un nouveau se crée.

    Maintenant, si au lieu de déplacer viewer je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root["viewer_mc"+i].startDrag();
    , alors plus rien ne bouge

  4. #4
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    (_root["viewer_mc"+i].startDrag(.....).

    actuellement ton startDrag est positionné sur le clip d'origine, et c'est celui-ci qui est bougé.

    Bien à toi

  5. #5
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    Salut,

    à mon avis tu as plus simple
    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
    var depth:Number = 0; 
    var trg:MovieClip = this.leClipADupliquer;
     
    trg.onRelease = function(Void):Void
    {
          var nc:MovieClip = trg.duplicateMovieClip("clipDuplique"+depth, depth);
          nc.onPress = function(Void):Void
          {
                 this.startDrag(false);
          }
          nc.onRelease = function(Void):Void)
          {
                 this.stopDrag();
          }
    }
    @++
    Libzippp (C++)
    Lost in AStorm

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par thecaptain
    Salut,

    à mon avis tu as plus simple
    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
    var depth:Number = 0; 
    var trg:MovieClip = this.leClipADupliquer;
     
    trg.onRelease = function(Void):Void
    {
          var nc:MovieClip = trg.duplicateMovieClip("clipDuplique"+depth, depth);
          nc.onPress = function(Void):Void
          {
                 this.startDrag(false);
          }
          nc.onRelease = function(Void):Void)
          {
                 this.stopDrag();
          }
    }
    @++
    ca ne marche pas!! je n'ai meme plus la main qui apparait au dessus de mon clip. et il me retourne des erreurs à cause du ":Void". Peut etre du à ma version (flash MX 2005)?


    et j'ai pas compris la remarque de aorgerit. oui quand j'ecris :viewer.startDrag (); c'est bien mon clip d'origine qui est sélectionné. Mais quand je mets :_root["viewer_mc"+i].startDrag(); alors là plus rien ne bouge.

  7. #7
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    re,

    mmh essaie plutot ce code-la (mais faut adapter un peu hein)
    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
    var depth:Number = 0; 
    var trg:MovieClip = this.leClipADupliquer;
     
    trg.onRelease = function(Void):Void
    {
          var nc:MovieClip = trg.duplicateMovieClip("clipDuplique"+depth, depth);
          nc.onPress = function(Void):Void
          {
                 this.startDrag(false);
          }
          nc.onRelease = function(Void):Void
          {
                 this.stopDrag();
          }
          nc.startDrag(false);
    }
    @++
    Libzippp (C++)
    Lost in AStorm

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    voila le code que je mets sur la sequance, dans action-image :
    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
    var depth:Number = 0; 
    var trg:MovieClip = this.viewer;
     
    trg.onRelease = function(Void){
          var nc:MovieClip = trg.duplicateMovieClip("clipDuplique"+depth, depth);
          nc.onPress = function(Void)
          {
                 this.startDrag(false);
          }
          nc.onRelease = function(Void)
          {
                 this.stopDrag();
          }
          nc.startDrag(false);
    }
    et j'ai le meme problème qu'au dessus, ie je n'ai meme plus la main qui apparait quand je suis au dessus du clip!! pourtant c'est vrai que le code a l'air bon!

  9. #9
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    re,

    essaie de faire un trg.onPress au lieu de trg.onRelease

    @++
    Libzippp (C++)
    Lost in AStorm

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    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
    var i=0;
     
     
    this.viewer.onPress=function(){
    var nc:MovieClip =viewer.duplicateMovieClip("viewer_mc"+i, i);
    trace("i="+_root["viewer_mc"+i]._x);
    i=i+1;
    nc.onPress=function(){
    this.startDrag (false);
    }
    nc.onRelease=function() {
    this.stopDrag();
    }
    nc.startDrag(false);
    }
    avec ce code là, j'ai la main, le clip se duplique (car il m'affiche la coord en x) mais le drag & drop ne fonctionne pas.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par thecaptain
    re,

    essaie de faire un trg.onPress au lieu de trg.onRelease

    @++
    non, il y avait tjs le meme problème.

  12. #12
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    re,

    tiens en passant j'ai oublié d'incrémenter le depth
    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
    var depth:Number = 0; 
    var trg:MovieClip = this.leClipADupliquer;
     
    trg.onPress = function(Void):Void
    {
          var nc:MovieClip = trg.duplicateMovieClip("clipDuplique"+depth, depth);
          nc.onPress = function(Void):Void
          {
                 this.startDrag(false);
          }
          nc.onRelease = function(Void):Void)
          {
                 this.stopDrag();
          }
     
          depth++;
    }
    @++
    Libzippp (C++)
    Lost in AStorm

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    oui c'est vrai
    mais ca ne resout pas le shlimblick! (dans mon code je me sers d'une variable i que j'incrémente
    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
    var i=0;
     
     
    this.viewer.onPress=function(){
    var nc:MovieClip =viewer.duplicateMovieClip("viewer_mc"+i, i);
    trace("i="+_root["viewer_mc"+i]._x);
    i=i+1;
    nc.onPress=function(){
    this.startDrag (false);
    }
    nc.onRelease=function() {
    this.stopDrag();
    }
     
    }

  14. #14
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    jejejejeje!
    ca y est le problème est résolu, grace à ce code :
    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
    var i=0;
     
     
    this.viewer.onPress=function(){
    viewer.duplicateMovieClip("viewer_mc"+i, i);
     
     
    _root["viewer_mc"+i].onPress=function(){
    this.startDrag(false);
     
    }
    _root["viewer_mc"+i].onRelease=function() {
    this.stopDrag();
    }
    i=i+1;
    }
    apparement, c'est la variable nc qu'il ne voulait pas initialiser ou définir. Maintenant ca marche nickel. Merci de m'avoir aidé.

  15. #15
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    re,

    tu es en quelle version de flash ? (penses à le préciser dans le titre) sinon évite les _root

    @++
    Libzippp (C++)
    Lost in AStorm

  16. #16
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    mx pro 2004.
    Pour koi eviter les root? je mets quoi à la place?

  17. #17
    Membre éprouvé
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Points : 1 210
    Points
    1 210
    Par défaut
    re,

    remplace les _root par this et _parent (voir notion de ciblage par ici)

    @++
    Libzippp (C++)
    Lost in AStorm

+ 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. "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