setInterval

setInterval - Flash/ActionScript - Programmation

Marsh Posté le 25-10-2005 à 17:14:18    

ya un petit truc que je comprends pas avec setInterval.. cette fonction n'est elle pas censer executer une instruction toutes les x millisecondes ?
 
 
dans mon animation je demande à mon script de commencer cette intervale au bout de 16000ms, et donc de s'executer toutes les 500ms à partir de ce moment là
pour ça j'ai fait un truc comme ça :
 

Code :
  1. function removeClip(s)
  2. {
  3. _root["cube"+decrement].removeMovieClip();
  4. trace(s);
  5. trace("cube"+decrement+" is removed" );
  6. _global.decrement++;;
  7. }
  8. if(getTimer()>=16000)
  9. {
  10. //trace("timer :"+getTimer());
  11. setInterval( removeClip, 500, "interval appelé" );
  12. }


 
 
... le probleme c'est qu'il attends bien mes 16000ms... mais apres il execute le setInterval à répétition... (il n'attends pas les 500ms) ... j'ai du encore rater quelquechose...


---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 17:14:18   

Reply

Marsh Posté le 25-10-2005 à 17:44:44    

tu veux dire que si tu mets:

Code :
  1. function verifinterval() { 
  2.      trace("timer :"+getTimer());
  3. }
  4. setInterval(verifinterval, 500, "interval appelé" );


tu n'as pas une sortie coherente?
 
personnellement j'ai ca:
timer :566
timer :1094
timer :1622
timer :2150
timer :2678
timer :3206
timer :3734
timer :4254
timer :4782
timer :5311
timer :5838
timer :6366
timer :6894
timer :7422
timer :7950
timer :8478
timer :9006
timer :9534
timer :10062
timer :10590
timer :11118
timer :11646


---------------
D3
Reply

Marsh Posté le 25-10-2005 à 18:09:37    

bah moi j'ai ça :
 
increment cube26
increment cube27
increment cube28
increment cube29
increment cube30
increment cube31
increment cube32
cube1 is removed at 16617
cube2 is removed at 16698
cube3 is removed at 16793
cube4 is removed at 16842
cube5 is removed at 17006
cube6 is removed at 17007
cube7 is removed at 17107
increment cube33
cube8 is removed at 17164
cube9 is removed at 17165
cube10 is removed at 17224
cube11 is removed at 17280
cube12 is removed at 17332
cube13 is removed at 17453
cube14 is removed at 17454
cube15 is removed at 17546
cube16 is removed at 17546
cube17 is removed at 17626
cube18 is removed at 17626
cube19 is removed at 17669
cube20 is removed at 17669
 
 
avec ce code là :

Code :
  1. function removeClip(s)
  2. {
  3. _root["cube"+decrement].removeMovieClip();
  4. //trace(s);
  5. trace("cube"+decrement+" is removed at "+getTimer());
  6. _global.decrement++;;
  7. }
  8. if(getTimer()>=16000)
  9. {
  10. //trace("timer :"+getTimer());
  11. setInterval( removeClip, 500, "interval appelé" );
  12. }


Message édité par freed102 le 25-10-2005 à 18:10:29

---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 18:14:31    

peut etre que c parceque j'ai mis mon code sur la seconde image clef et que ça revient sur le code à repetition ?


---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 18:36:53    

ben essaye de mettre un this.stop(); sur ta frame


Message édité par mechkurt le 25-10-2005 à 18:37:09

---------------
D3
Reply

Marsh Posté le 25-10-2005 à 18:39:21    

bah en fait j'essaie de tout remettre mon script sur une seule image clef.. mais là j'ai carrement fait planter flash ! lol


---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 18:47:49    

pour simplifier, voici mon code :
 

Code :
  1. _root.stop();
  2. now = getTimer();
  3. increment=1;
  4. depart=0;
  5. decrement=1;
  6. function removeClip(s)
  7. {
  8. _root["cube"+decrement].removeMovieClip();
  9. trace("cube"+decrement+" is removed at "+ getTimer());
  10. decrement++;
  11. }
  12. function addCubes()
  13. {
  14. increment2=increment+1;
  15. duplicateMovieClip(_root.logo,"logo"+increment2,increment2);
  16. "logo"+increment.removeMovieClip();
  17. duplicateMovieClip(_root.cube,"cube"+increment,increment);
  18. _root["cube"+increment]._x = 0;
  19. _root["cube"+increment]._y = 30;
  20. _root["cube"+increment].moveCubes();
  21. trace("increment cube"+increment+" at "+ getTimer());
  22. increment++;
  23. }
  24. MovieClip.prototype.moveCubes =function()
  25. {
  26. this.onEnterFrame=function()
  27. {
  28.   setInterval( removeClip, 16000);
  29. }
  30. }
  31. setInterval( addCubes, 500 );


 
 
et voici le resultat :
 

Citation :


increment cube1 at 533
increment cube2 at 1054
increment cube3 at 1554
increment cube4 at 2073
increment cube5 at 2577
increment cube6 at 3119
increment cube7 at 3640
increment cube8 at 4161
increment cube9 at 4702
increment cube10 at 5222
increment cube11 at 5722
increment cube12 at 6222
increment cube13 at 6722
increment cube14 at 7222
increment cube15 at 7722
increment cube16 at 8223
increment cube17 at 8763
increment cube18 at 9270
increment cube19 at 9802
increment cube20 at 10302
increment cube21 at 10810
increment cube22 at 11315
increment cube23 at 11847
increment cube24 at 12387
increment cube25 at 12931
increment cube26 at 13471
increment cube27 at 13974
increment cube28 at 14477
increment cube29 at 15015
increment cube30 at 15555
increment cube31 at 16095
cube1 is removed at 16594
increment cube32 at 16638
cube2 is removed at 16638
cube3 is removed at 16680
cube4 is removed at 16731
cube5 is removed at 16766
cube6 is removed at 16806
cube7 is removed at 16846
cube8 is removed at 16886
cube9 is removed at 16930
cube10 is removed at 16990
cube11 is removed at 16991
cube12 is removed at 17033
cube13 is removed at 17073
cube14 is removed at 17113
cube15 is removed at 17113
 


 
c chelou !


---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 18:58:21    

j'ai simplifié mon code
 

Code :
  1. _root.stop();
  2. now = getTimer();
  3. increment=1;
  4. depart=0;
  5. decrement=1;
  6. function removeCubes(s)
  7. {
  8. _root["cube"+decrement].removeMovieClip();
  9. trace("cube"+decrement+" is removed at "+ getTimer());
  10. decrement++;
  11. }
  12. function addCubes()
  13. {
  14. increment2=increment+1;
  15. duplicateMovieClip(_root.logo,"logo"+increment2,increment2);
  16. "logo"+increment.removeMovieClip();
  17. duplicateMovieClip(_root.cube,"cube"+increment,increment);
  18. _root["cube"+increment]._x = 0;
  19. _root["cube"+increment]._y = 30;
  20. trace("increment cube"+increment+" at "+ getTimer());
  21. increment++;
  22. }
  23. setInterval( addCubes, 500 );
  24. if(getTimer() >= 16000)
  25. {
  26. setInterval( removeCubes, 500);
  27. }


 
 
 
mais je comprends pas.. ça :
 
if(getTimer() >= 16000)
{
setInterval( removeCubes, 500);
}
 
... et bien ça ça marche pas !!! si je retire le if ça marche... si je mets un if.. ça marche pas !


---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 19:05:35    

ouf ! j'ai reussi a avoir ce que je voulais.. enfin !! mais bon c un peu triché je trouve!

Code :
  1. _root.stop();
  2. now = getTimer();
  3. increment=1;
  4. depart=0;
  5. decrement=1;
  6. function removeCubes()
  7. {
  8. if(getTimer() >= 16000)
  9. {
  10. _root["cube"+decrement].removeMovieClip();
  11. trace("cube"+decrement+" is removed at "+ getTimer());
  12. decrement++;
  13. }
  14. }
  15. function addCubes()
  16. {
  17. increment2=increment+1;
  18. duplicateMovieClip(_root.logo,"logo"+increment2,increment2);
  19. "logo"+increment.removeMovieClip();
  20. duplicateMovieClip(_root.cube,"cube"+increment,increment);
  21. _root["cube"+increment]._x = 0;
  22. _root["cube"+increment]._y = 30;
  23. trace("increment cube"+increment+" at "+ getTimer());
  24. increment++;
  25. removeCubes();
  26. }
  27.  setInterval( addCubes, 500 );


 
 
ça me donne ça :
 
increment cube25 at 12805
increment cube26 at 13309
increment cube27 at 13849
increment cube28 at 14349
increment cube29 at 14849
increment cube30 at 15349
increment cube31 at 15890
increment cube32 at 16394
cube1 is removed at 16394
increment cube33 at 16908
cube2 is removed at 16909
increment cube34 at 17442
cube3 is removed at 17442
increment cube35 at 17978
cube4 is removed at 17978
increment cube36 at 18518
cube5 is removed at 18518
increment cube37 at 19058
cube6 is removed at 19058
increment cube38 at 19565
cube7 is removed at 19566
increment cube39 at 20073
cube8 is removed at 20073
increment cube40 at 20612
cube9 is removed at 20612


---------------
Freed102
Reply

Marsh Posté le 25-10-2005 à 19:48:33    

faut souvent ruser avec Flash, l'important c'est que ca marche...


Message édité par mechkurt le 25-10-2005 à 19:53:16

---------------
D3
Reply

Sujets relatifs:

Leave a Replay

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