Probleme avec un setInterval

Probleme avec un setInterval - Flash/ActionScript - Programmation

Marsh Posté le 08-09-2005 à 11:03:04    

BOnjour,
En fait je voudrais faire un bouton qui se decale quand on passe la souris dessus ,en actionscript.
j ai donc defini sur le bouton :
var decale;//deja decaler ou pas true ou false
var valeurdecalage; //+x a droite ou -x a gauche
var origine;//position d origine
var timer;//id timer
origine=this._x;
function decallage(origine) {
  trace("origine:"+origine);
  trace("x:"+this._x);
  trace("decalage:"+valeurdecalage);
  trace(this._x-origine);
  if (this._x-origine<=100 and this._x-origine>=0) {
   this._x = this._x+valeurdecalage;
   
  }
  else
                      {
   trace("clear" );
   clearInterval(timer);
                      }
 }
 
et sur la zone clicable:
on (rollOver) {
 if (!decale) {
  valeurdecalage=1;
  timer=setInterval(decallage(origine), 10);
 }
 decale = true;
}
on (rollOut) {
 if (decale) {
  valeurdecalage=-1;
  timer=setInterval(decallage(origine), 10);
 }
 decale = false;
}
 
en fait tout marche a peu pret sauf que le setInterval ne s execute qu une fois et pourtant ca ne passe jamais par le clearInterval...
je dois bien avoir fait une 30aine de site sur setInterval je comprends pas pourquoi ca ne s execute qu une fois.
si qqun peux m aider, merci d 'avance


Message édité par aliasDrizzt le 08-09-2005 à 11:45:23
Reply

Marsh Posté le 08-09-2005 à 11:03:04   

Reply

Marsh Posté le 08-09-2005 à 11:39:11    

Pour ton PB de setinterval si le else s'ouvrait et se fermait peut etre que ca irait mieux (pas sur) parcque la l'interpreteur peut comprendre que le clear interval et en dehors du if (donc executer) OK y devrait aussi lire le trace("clear" ); mais bon...
;-)


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

Marsh Posté le 08-09-2005 à 11:42:54    

je vais faire ca alors , depuis le temps que je galere la dessus je suis plus a une accolade pres... ;) merci

Reply

Marsh Posté le 08-09-2005 à 11:44:31    

ah oui c est vrai que j avais rajouté un trace apres donc c etait plus que nécessaire, mais non ca marche toujours pas avec....

Reply

Marsh Posté le 08-09-2005 à 13:45:10    

ce serait pas plus simple de faire un truc comme ca ?

Code :
  1. on (rollOver) {
  2.   survol = true;
  3. }
  4. on (rollOut) {
  5. survol = false;
  6. }
  7. on (enterframe) {
  8.    if (survol && this._x<destination) {
  9.       this._x++;
  10.    } else if (!survol && this._x>origine) {
  11.       this._x--;
  12.    }
  13. }


au fait la valeur donné a setInterval est 10 milliseconds c'est vachte rapide non?


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

Marsh Posté le 08-09-2005 à 14:06:08    

non , car je travaille que sur une frame avec bcp d action script. j y avais pensé mais en plus ca ne me permettait pas d avoir la meme fluidité d image qu avec le setInterval sauf en augmentant bcp le nombre d image par seconde.

Reply

Marsh Posté le 08-09-2005 à 14:07:22    

merci bcp pour la proposition quand meme; c est bien 10 ms j etais parti a 100 mais j avais baissé comme ca marchait pas pour voire comment ca réagirai . ca change rien au final...

Reply

Marsh Posté le 08-09-2005 à 14:11:06    

je me suis basé entre autre chose la dessus et je comprends toujours pas pourquoi le mien s arrete apres une premiere execution....

Reply

Marsh Posté le 08-09-2005 à 15:02:28    

oups doublon...


Message édité par aliasDrizzt le 08-09-2005 à 15:06:56
Reply

Marsh Posté le 08-09-2005 à 15:06:05    

la dessus c est en parlant d un site que jai oublkié de citer :
http://www.microapp.com/trucs/trucs.cfm?numero=118

Reply

Marsh Posté le 08-09-2005 à 15:06:05   

Reply

Marsh Posté le 12-09-2005 à 10:21:25    

personne a une idée??

Reply

Sujets relatifs:

Leave a Replay

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