tween onMotionFinished

tween onMotionFinished - Flash/ActionScript - Programmation

Marsh Posté le 09-05-2006 à 14:49:21    

bien le bonjour messieurs dames!!
 
alors voila mon code:
 

Code :
  1. import mx.transitions.Tween;
  2. import mx.transitions.easing.*;
  3. var maTween:Tween;
  4. bouger = function()
  5. {
  6. maTween = new Tween(_root.template1,"_width",Bounce.easeOut,_root.template1._width,0,3,true);
  7. }
  8. maTween.onMotionFinished = function()
  9. {
  10. trace("ouin ouin" );
  11. }


 
mais voila a la fin des 3 second et donc de l'animation rien ne s'affiche pas de "ouin ouin"
 
merci de me repondre!!

Reply

Marsh Posté le 09-05-2006 à 14:49:21   

Reply

Marsh Posté le 09-05-2006 à 19:31:29    

onMotionStopped

Reply

Marsh Posté le 30-01-2010 à 17:04:36    

Bonjour,
 
Je suis face au même soucis, c'est-dire que l'event "onMotionFinished" n'est pas reconnu par actionscript (il ne s'indique pas en bleu) et onMotionStopped ne me réussit pas mieux... Impossible de trouver la solution...
 
Mon code :
 

Code :
  1. var xSlide1Con:Tween;
  2. var xSlide2Con:Tween;
  3. ConSlide = function(s,t) {
  4. setTimeout(function() {
  5. var xSlide1Con = new Tween(s, "_x", Regular.easeOut, 25, -875, 8, true);
  6. var xSlide2Con = new Tween(t, "_x", Regular.easeOut, 925, 25, 8, true);
  7.       }, 15000);
  8. }
  9. ConSlide(Con1,Con2);
  10. xSlide1Con.onMotionFinished = function() {
  11. trace("That sucks" );
  12. }


 
Les variables Con1 et Con2 sont bien déclarées, pas de soucis et le tweening se fait aussi très bien... Mais impossible de faire reconnaître le onMotionFinished par actionscript qui le considère comme du texte et ne le met pas en bleu comme n'importe quel autre event...
 
Aucune idée ? (j'utilise Flash CS4 mais je suis bien en actionscript 2.0)
 
D'avance merci,

Reply

Marsh Posté le 31-01-2010 à 21:44:28    

Bah c'est normale, tu déclare tes variable 2 fois !
Surtout que le fait de déclarer une variable au sein d'une fonction limite sa portée...
bref, retire les "var " dans ConSlide...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-02-2010 à 10:33:00    

J'ai un petit souci d'un autre genre mais avec la classe Tween.

 

J'ai animé une occurrence pour le faire bondir simplement au passage de la souris, mais au lancement de l'animation, si le premier "bond" se passe parfaitement bien, les suivants sont totalement chaotiques...

 

Voila mon caca :

 

on(rollOver){

 

import mx.transitions.Tween;
import mx.transitions.easing.*;
var maTween2:Tween = new Tween( this, "_y", Regular.easeIn, 2.5, -2.5, 5, false );
 
maTween2.onMotionFinished = function() {
this.continueTo(2.5);
}
}
on(rollOut){
 maTween2.continueTo(2.5);
}



Message édité par lxl ihsahn lxl le 24-02-2010 à 10:35:33

---------------
[YouTube] Le Cerveau Lent : vulgarisation sciences cognitives ◦ [url=https://forum.hardware.fr/hfr/AchatsVentes/Photo-Audio-Video/vds-pentax-samyang-sujet_644991_1.htm]Vente Penta
Reply

Marsh Posté le 24-02-2010 à 11:08:00    

Lis ma réponse, tu as fais la même bourde...
Deja AS2 me rebute de plus en plus, mais l'AS1...
Enfin bref, je vais quand même te dire !
Tu as déclaré maTween2 dans ta fonction rollOver...
La chatouiller depuis l'exterieur n'est donc pas possible, même si AS2 essaye de faire des miracles...

 
Code :
  1. import mx.transitions.Tween;
  2. import mx.transitions.easing.*;
  3.  
  4. var maTween2:Tween
  5.  
  6. maTween2.onMotionFinished = function()
  7. {
  8.     this.continueTo(2.5);
  9. }
  10.  
  11. on(rollOver)
  12. {
  13.   maTween2 = new Tween( this, "_y", Regular.easeIn, 2.5, -2.5, 5, false );
  14. }
  15.  
  16. on(rollOut)
  17. {
  18. maTween2.continueTo(2.5);
  19. }

Message cité 1 fois
Message édité par abais le 24-02-2010 à 11:09:52

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-02-2010 à 11:21:50    

abais a écrit :

Lis ma réponse, tu as fais la même bourde...
Deja AS2 me rebute de plus en plus, mais l'AS1...
Enfin bref, je vais quand même te dire !
Tu as déclaré maTween2 dans ta fonction rollOver...
La chatouiller depuis l'exterieur n'est donc pas possible, même si AS2 essaye de faire des miracles...
 

Code :
  1. import mx.transitions.Tween;
  2. import mx.transitions.easing.*;
  3.  
  4. var maTween2:Tween
  5.  
  6. maTween2.onMotionFinished = function()
  7. {
  8.     this.continueTo(2.5);
  9. }
  10.  
  11. on(rollOver)
  12. {
  13.   maTween2 = new Tween( this, "_y", Regular.easeIn, 2.5, -2.5, 5, false );
  14. }
  15.  
  16. on(rollOut)
  17. {
  18. maTween2.continueTo(2.5);
  19. }



 
Le souci avec cette forme c'est qu'il me faut un truc genre onEnterFrame (erreur "Statement must appear within on/onClipEvent handler" ), et que là pour définir les rollOver/Out je suis sur le clip et non sur la timeline avec le script... Je crois que je vais tout repenser autrement, mais merci pour l'éclaircissement :D


---------------
[YouTube] Le Cerveau Lent : vulgarisation sciences cognitives ◦ [url=https://forum.hardware.fr/hfr/AchatsVentes/Photo-Audio-Video/vds-pentax-samyang-sujet_644991_1.htm]Vente Penta
Reply

Marsh Posté le 24-02-2010 à 12:33:21    

Habitue toi à mettre le code dans un calque vide à part, dans le conteneur(là ou ton bouton est présent en tant qu'instance)...
Nomme ton bouton (instance name), "monBouton" par exemple...

 

Ton code serait donc :

 
Code :
  1. import mx.transitions.Tween;
  2. import mx.transitions.easing.*;
  3.  
  4. var maTween2:Tween;
  5.  
  6. maTween2.onMotionFinished = function()
  7. {
  8.     maTween2.continueTo(2.5);
  9. }
  10. monBouton.onRollOver = function()
  11. {
  12.   maTween2 = new Tween( monBouton, "_y", Regular.easeIn, 2.5, -2.5, 5, false );
  13. }
  14.  
  15. monBouton.onRollOut = function()
  16. {
  17.   maTween2.continueTo(2.5);
  18. }


Ensuite attention, les positions que tu énonce dans le tween ne sont plus relative au bouton, mais à son conteneur !

Message cité 1 fois
Message édité par abais le 24-02-2010 à 12:34:31

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-02-2010 à 13:39:19    

abais a écrit :

Habitue toi à mettre le code dans un calque vide à part, dans le conteneur(là ou ton bouton est présent en tant qu'instance)...
Nomme ton bouton (instance name), "monBouton" par exemple...
 
Ton code serait donc :
 

Code :
  1. import mx.transitions.Tween;
  2. import mx.transitions.easing.*;
  3.  
  4. var maTween2:Tween;
  5.  
  6. maTween2.onMotionFinished = function()
  7. {
  8.     maTween2.continueTo(2.5);
  9. }
  10. monBouton.onRollOver = function()
  11. {
  12.   maTween2 = new Tween( monBouton, "_y", Regular.easeIn, 2.5, -2.5, 5, false );
  13. }
  14.  
  15. monBouton.onRollOut = function()
  16. {
  17.   maTween2.continueTo(2.5);
  18. }


Ensuite attention, les positions que tu énonce dans le tween ne sont plus relative au bouton, mais à son conteneur !


 
Ah, j'ignorais qu'on pouvait (enfin du moins comment on pouvait) définir des actions de bouton en dehors du bouton-même... j'essaye au plus de mettre le code sur des calques séparés, voire entièrement sur la racine de la scène, mais les mauvaises habitudes de débutant ont la vie dure :D
 
Merci beaucoup d'avoir pris le temps en tout cas :jap:


---------------
[YouTube] Le Cerveau Lent : vulgarisation sciences cognitives ◦ [url=https://forum.hardware.fr/hfr/AchatsVentes/Photo-Audio-Video/vds-pentax-samyang-sujet_644991_1.htm]Vente Penta
Reply

Marsh Posté le 24-02-2010 à 17:56:32    

Ah bah si tu mets tout dans la racine, c'est encore mieux en effet...
Sinon, le fait de mettre le code directement sur le bouton avec du on(){}, c'est de l'AS1...
Mais un conseil, mets toi à l'AS3, tu n'auras plus ce genre de problème (le fait que ça ne marche qu'à moitié)...
Moi c'est grâce à ça que j'apprends en tout cas...

Message cité 1 fois
Message édité par abais le 24-02-2010 à 17:57:28

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-02-2010 à 17:56:32   

Reply

Marsh Posté le 24-02-2010 à 18:44:12    

abais a écrit :

Ah bah si tu mets tout dans la racine, c'est encore mieux en effet...
Sinon, le fait de mettre le code directement sur le bouton avec du on(){}, c'est de l'AS1...
Mais un conseil, mets toi à l'AS3, tu n'auras plus ce genre de problème (le fait que ça ne marche qu'à moitié)...
Moi c'est grâce à ça que j'apprends en tout cas...


 
Il faut que je m'y mette, surtout que j'ai pas encore des connaissances poussées en AS2.
 
Mais bon, d'un autre côté j'ai besoin d'outils que je connait en AS2 et par souci de rapidité je reste dessus, et vu qu'on ne peut pas mixer les langage dans un même projet jpeux pas évoluer en douceur :D


---------------
[YouTube] Le Cerveau Lent : vulgarisation sciences cognitives ◦ [url=https://forum.hardware.fr/hfr/AchatsVentes/Photo-Audio-Video/vds-pentax-samyang-sujet_644991_1.htm]Vente Penta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed