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 1 & ActionScript 2 Discussion :

le centrage lors d'un drag


Sujet :

ActionScript 1 & ActionScript 2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Par défaut le centrage lors d'un drag
    salut voila j'ai un code qui me permet de faire un easing drag (=smooth) d'un movie clip. le problème c'est qu'il na pas le lock center comme le startdrag. je m'explique avec ce code des que je fais un drag la position de mon movie clip se centre au milieu. moi je ne veux pas ca , je veux pouvoir déplacer mon movie clip a partir de l'endroit ou j'ai cliquer.

    pouvez vous m'aider
    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
    _root.myMC.ease = 2;
    _root.myMC.targX = _root.myMC._x
    _root.myMC.targY = _root.myMC._y
     
    _root.myMC.onPress = function() {
        this.drag = true;
     
    };
    _root.myMC.onEnterFrame = function() {
     
        if (this.drag == true) {
            this.targX = _root._xmouse;
            this.targY = _root._ymouse;
        }
        if (this._x != this.targX | this._y != this.targY) {
            this._x += (this.targX-this._x)/this.ease;
            this._y += (this.targY-this._y)/this.ease;
        }
    };
    _root.myMC.onMouseUp = function() {
        this.drag = false;
     
    };

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Bonjour,

    le fonction startDrag prend en second paramètre un booléen qui indique si le clip va rester à la même position ou non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startDrag( monClip, false );

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Par défaut
    exacte mais mon but est d'utiliser le code d'au dessus qui me permet de réaliser un smooth drag différent du startdrag classic. et j'aimerai ajouter le paramètre false du startdrag a ce code.

    comment faire?

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    désolé pour la réponse tardive ..

    donc pour résoudre le problème il faut mémoriser la position de la souris par rapport au clip lors du click,
    ensuite on prend pour cible la position de la souris moins l'offSet mémorisé quand on fait bouger le clip.

    il y a une erreur dans ton code, l'opérateur logique OU c'est ||
    ( | c'est un opérateur bit à bit )

    sinon pour ne pas ralentir trop l'animation il faut que la fonction onEnterFrame ne soit pas exécutée tout le temps mais juste quand on drag le clip.

    le code qui va bien :
    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
    monClip.ease = 2;
     
    monClip.onPress = function()
    {
        this.drag = true;
        this.offSetX = this._xmouse;
        this.offSetY = this._ymouse;
        this.onEnterFrame = moveToTarget;
    };
    monClip.onMouseUp = function()
    {
        this.drag = false;
    };
     
    function moveToTarget()
    {    
        if ( this.drag )
        {
            this.targX = _root._xmouse - this.offSetX;
            this.targY = _root._ymouse - this.offSetY;
        }
        if ( Math.round(this._x) != this.targX || Math.round( this._y ) != this.targY )
        {
            this._x += (this.targX-this._x)/this.ease;
            this._y += (this.targY-this._y)/this.ease;
        }
        else if( !this.drag )
        {    delete this.onEnterFrame;
        }
    }
    ;)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Par défaut
    le code que tu m'a donné marche bien mais j'ai un autre problème lier a ce code.
    en faite le clip que j'ai, je lui est applique un autre code qui permet de modifier sa taille avec xscale et yscale et quand je modifie la taille bah le code marche

    peut tu m'aider


    merci

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Citation Envoyé par bil_home Voir le message
    quand je modifie la taille bah le code marche
    marche .. pas ?

    il faut voir l'ensemble de ton code pour t'aider.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2009, 14h48
  2. [JList] afficher un menu lors d'un drag and drop
    Par skyangel dans le forum Composants
    Réponses: 4
    Dernier message: 12/03/2008, 15h16
  3. [C++.NET]Objet sous la souris lors d'un drag&drop
    Par Breizhim dans le forum VC++ .NET
    Réponses: 9
    Dernier message: 27/04/2006, 11h14
  4. Réponses: 4
    Dernier message: 01/10/2005, 11h03

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