Probleme drag and drop associé a un tween

Résolu
baddup Messages postés 6 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juillet 2008 - 15 juil. 2008 à 16:25
myeel Messages postés 1 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 19 janvier 2010 - 19 janv. 2010 à 19:29
Bonjour à tous, je débute dans flash j'ai un petit souci sur une petite simulation de navigation que ej veu réaliser !

alors voilà le problème... En fait j'éssai de faire un drag and drop avec un effet "tween" quand on relache, ainsi je souhaites que l'objet une fois lacher continu un peu sur l'axe Y son mouvement...








 




Donc j'ai trouver comment faire le TWEEN et le drag and drop ...








 




Mais le souci c'est qu'il faut que je conditionne mon mctween en fonction de la "direction" du drag and drop... c'est dire que quand on drag vers le haut, l'objet continu son mouvement vers le haut.






et inversement quand on va vers le bas le mouvement de l'objet continu vers le bas...








 




J'ai éssayer de trouvé la condition mais impossible de la taper correctement.. j'ai tester des trucs genre






lorsque Y debut de drag > YDrop , etc , etc .... mais c'est pas bon :(    .... imposssible de bien la formuler .. pourtant je l'ai sur le bout de la langue ....








 






 




et voici le code utiliser qui marche dans un sens mais fait un effet "pas naturel" dans l'autre !  :
("mosaic" est mon clip que je drag and drop, j'ai mi le drag and drop directement sur mon clip sur la scene)






mosaic.onRelease = function() {
  tweenBall(mx.transitions.easing.Back.easeOut);
  };
function tweenBall(easeType) {
        var begin = mosaic._y;        var end mosaic._y-75;    ( > en fait, il faudrait une autre ligne avec cette fois  var end mosaic._y+75 lorsque je drag vers le bas ! )
        var time = 15;
        var mc = mosaic;
        ballTween = new mx.transitions.Tween(mc, "_y", easeType, begin, end, time);
}








 





Je suis sûr qu'il y a genre deux  "if" a mettre avant les function tweenBall(easeType){.........} mais impossible d'écrire correctement la syntaxe.








 




Merci par avance de votre aide ....








 




et à très très bientôt !








 





B.

3 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
15 juil. 2008 à 17:04
Salut,

lors du onPress tu stock la valeur de _y et tu le transmets lors du onRelease à la fonction tweenBall

mosaic.onPress = function() {
  this.startYpos=this._y
 // suit ede ton code
  };
mosaic.onRelease = function() {
  tweenBall(mx.transitions.easing.Back.easeOut,this.startYpos);
  };
function tweenBall(easeType,yStart:Number) {
        var begin = mosaic._y;
        var sens:Number=1
        if(mosaic._y-yStart<0){
          sens=-1
        }
        var end = mosaic._y-75*sens; 
        var time = 15;
        var mc = mosaic;
        ballTween = new mx.transitions.Tween(mc, "_y", easeType, begin, end, time);
}

@+
3
baddup Messages postés 6 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 18 juillet 2008
15 juil. 2008 à 20:41
Merci Girou,
ça marche et en plus j'ai compris le principe, donc c'est cool ! merci bien !

Il y a juste un petit problème dans mon drag est drop, mais ça je pense que je vai trouver, en fait c'est quand le "y debut de drag" est egale au "y du drop", il faut que j'annule l'action car sinon il prend en compte le tweenball et ça fait bizarre !
Ou il faut peut être que je l'intégre au code du tweenBall, avec genre un "if(mosaic._y-yStart=0)"
 .... Mais bon comme c'est juste pour une simulation, je vai pas me prendre trops tête ... Car après place au vrais développeurs , moi je fai juste des petites simulations pour valider mon graphisme !

Merci beaucoups de ton aide, et bonne continuation !
3
myeel Messages postés 1 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 19 janvier 2010
19 janv. 2010 à 19:29
bonjour,
je débute en action script2, et j'ai essayé de réutiliser ce code pour déplacer un bouton.
pas de soucis, ca marche, mais j'aurais aimé que l'effet élastique se répercute dans tous les sens _du haut vers le bas, de bas en haut, de gauche a droite et de droite a gauche.

j'ai essayer de rajouter des variables x, mais apparemment je n'y arrive pas!

merci d'avance pour votre aide!
0
Rejoignez-nous