Drag'nDrop et clip qui se modifie en fonction

Signaler
Messages postés
58
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
23 janvier 2011
-
Messages postés
58
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
23 janvier 2011
-
Bonjour, voila je voudrais qu'en déplacant la boule de 100 pixel vers le bas, le fil se déforme par le bas et suive la boule.

je teste ceci :

this.site.boule._y=250

this.site.boule.onPress = function() {
    startDrag(this, true, this._x, this._y, this._x, 350);
    this.onEnterFrame = function() {
       
// je calcule la distance parcourue par la boule
        var etirement = this._y-250;
        this._parent.fil._yscale += etirement
        //
        if (etirement == 100) {
            delete this.onEnterFrame;
        }
    };
};
this.site.boule.onRelease = function() {
    delete this.onEnterFrame;
    stopDrag();
};

Le onEnterFrame ne me semble pas être la bonne solution puisque le  le fil._yscale ne suit pas  le déplacement de la boule mais applique seulement le calcul +=etirement.

En espérant que quelqu'un pourra m'aider et que j'ai été assez explicite.

Par avance merci.

6 réponses

Messages postés
1596
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
2
Déjà je supprimerai:

        if (etirement == 100) {
            delete this.onEnterFrame;
        }

=> si tu restes appuyé et que tu veux finalement étirer moins, il faudra d'abord relacher la boule! Car la boule ne stoppe pas avec stopDrag() , mais le fil ne suivra plus avec ce bout de code.

Ensuite, suffit de se représenter les choses et ça devrait faire l'affaire comme ça :
etirement = this._y-250; //OK
fil._height = etirement - rayon de la boule;

Tu pourrais également utiliser "_yscale", mais pas directement en ajoutant l'étirement (puisque l'étirement est exprimé en pixel alors que _yscale est en pourcentage, il faudrait passer par une règle de trois et une variable intermédiaire).

@+! Samy
Messages postés
58
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
23 janvier 2011

On avance :

j'ai essayé ce que tu m'a dit :
- ta première solution à mon avis  ne peut fonctionner telle quelle :
etirement = this._y-250; // cela represente la distance parcourue par la boulefil._height etirement - rayon de la boule; // donc si etirement 20, la hauteur de mon fil rapetissait jusqu'à 20 ...

-lol apres 3h de galère pour une simple règle de trois, j'en ai déduit que etirement était bien exprimé en pourcentage car la distance totale à parcourir est de 100px.

j'arrive donc au code suivant :

this.onEnterFrame = function() {
        var etirement = this._y-250;
       this._parent.fil._yscale = 100+etirement-20; // 20 etant le rayon de la boule
    };

cela fonctionne mais un probleme : il n'étire pas le fil par le bas, ce qui fait que en grandissant le haut de mon fil remonte alors que j'aurais aimé qu'il reste fixe. tu as une idée ??

Merci !!
a+ elodie.
Messages postés
1596
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
2
Faisons ça autrement:

this.site.boule._y=250;

this.site.boule.onPress = function() {
    this.tempY = this._y;
    startDrag(this, true, this._x, this._y, this._x, 350);
    this.onEnterFrame = function() {
        // je calcule la distance parcourue par la boule
        var etirement = this._y-this.tempY;
        this._parent.fil._y += etirement;
        this.tempY = this._y;
    }
}
this.site.boule.onRelease = function() {
    delete this.onEnterFrame;
    stopDrag();
}

Dis-moi ce que ça donne.

@+! Samy
Messages postés
58
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
23 janvier 2011

En faisant ca je déplace juste le fil en meme temps que la boule, donc il descend.

Veux tu le .fla pour mieux te rendre compte ??
Messages postés
1596
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
2
oups, faut remplacer le "fil._y" par "fil._height" bien sûr ...étourderie!

Je pense que ça devrait être bon quand même maintenant.

@+! Samy
Messages postés
58
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
23 janvier 2011

;)) ok !

Mais aucun changemement par rapport à tout à l'heure avec le _yscale.
Le fil continue de s'étirer par le haut et le bas en même temps

a++
Elodie