|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Bonjour,
J'ai écrit un objet par le "mode" prototype. Dans la définition des méthodes, j'ai : Code :
Code :
setInterval(function(){deuxieme(_param);},5000); Merci d'avance |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Jérome DebrayResponsable de projet Inscription : mai 2009 Messages : 627 ![]() |
Salut,
setInterval nécessite 2 paramètres : la fonction (entre guillement) et un délai (en ms). Exemple : Code javascript :
|
||
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
sachant aussi que les arguments de la fonction sont normalement placés en troisième paramètre de setInterval;
|
|
|
00
|
|
|
#4 | |||
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Re,
Citation:
Je pense plutôt qu'il n'arrive pas à aller chercher ma méthode du fait que c'est dans l'objet courant (d'où l'essai avec mon this au début). |
|||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
je vois que tu as édité ton poste original pour rajouter les millisecondes mais tu n'as pas rajouté les guillemets ! ton code chez toi possède-t'il bien ces guillemets ?
|
|
|
00
|
|
|
#6 | |||
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Citation:
Suite à vos messages (et je pense avoir testé cette option), j'ai (re)mis les double-quote et non, il ne trouve pas la méthode. C'est en farfouillant que j'avais trouvé cette option en repassant par "function". Si je veux rester logique, sans me préoccuper de la sémantique, le code serait plus : Code :
|
|||
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
edit: je n'avais pas vu que tu étais dans un "object" en fait, au temps pour moi :
crée une variable pour sauvergarder le this et appelle tes autres fonction sur cette variable : Code :
edit: re au temps pour moi, la bonne solution est : Code :
|
||||
|
|
00
|
|
|
#8 | |||
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Re,
Citation:
Quand un paramètre est un entier, Firebug me renvoie une erreur : "missing formal parameter". |
|||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
|
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
Citation:
ceci n'est pas correct : Code :
fn1 = function(_param){that.deuxieme();} -> il faut rajouter le paramètre comme ceci : Code :
fn1 = function(_param){that.deuxieme(_param);} |
|
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Re,
Effectivement, ça change certaines choses. En revanche, j'ai l'impression que l'objet est perdu. Dans ma fonction deuxieme() où je me sers de la variable (traitement d'image), firebug me dit que la variable (ici _param) est undefined. Or, quand je mets des points d'arret aux entrées et sorties des méthodes, j'ai bien mon objet (chose que je n'avais pas avant la dernière correction de Willpower). |
|
|
00
|
|
|
#12 | ||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
Citation:
bon, déjà (pour plus de clarter, ça ne changera en rien le prob), donnons des noms diff aux parametres de la fonction : fn1 Code :
fn1 = function(p1){that.deuxieme(p1);} au lieu de et ne pas utiliser le 3ème paramètre de setIntervalle(contrairement à ce que je disais javatwister) pour passer les paramètre (genre : Citation:
bon, déjà (pour plus de clarter, ça ne changera en rien le prob), donnons des noms diff aux parametres de la fonction : fn1 Code :
fn1 = function(p1){that.deuxieme(p1);} au lieu de et ne pas utiliser le 3ème paramètre de setIntervalle(contrairement à ce que je disais javatwister) pour passer les paramètre (genre : edit: si ton _param est une variable locale, cela risque de ne pas fonctionner (surement l'erreur de ton int) il faudra donc encore complexifier la solution : Code :
edit2: je n'aime pas proposer de solution sans la tester donc je viens de test et ça fonctionne du premier coup ! j'suis trop fort aujourd'hui Code :
|
||||||
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
ah oui effectivement, t'as l'air claqué Willpower
en fait, IE à l'âge de pierre (version 4) ne comprenait pas cette solution pourtant sympathique; mais depuis, que de progrès |
|
|
00
|
|
|
#14 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#15 | ||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
une façon d'y arriver
Code :
|
||
|
|
00
|
|
|
#16 |
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Re,
Dans vos réponses, il y a des "p" et des "p1" (sans jeux de mots de ma part) ; est-ce la même variable (et donc une erreur d'écriture) ou est-ce une autre. Dans la dernière solution proposée par NoSmoking, le problème est qu'il me faut récupérer la valeur de setInterval (parce qu'avec toutes ces function de function, je suis un peu perdu). |
|
|
00
|
|
|
#17 | |||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
Citation:
exemple : Code :
et effectivement, l'approche de noSmoking est bien meilleure même s'il déclare 2 fonctions de trop : Code :
tout simplement nb: désolé, d'être encore une fois parti dans des solutions casse-têtes pour rien^^(j'avais vraiment la tête dans le *** hier) |
|||||
|
|
00
|
|
|
#18 | |||
|
Membre du Club
![]() Inscription : janvier 2003 Messages : 160 ![]() |
Re,
Citation:
|
|||
|
|
00
|
|
|
#19 | ||||||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Citation:
concernant les fonctions en trop je n'est fait que reprendre la fonction "tampon" fn1 qui effectivement n'a pas lieu d'exister...mais... l'exemple est intéressant pour montrer comment l'on peut passer des paramètres à une fonction setInterval, itou pour setTimeout, qui s'exécutera hors du scope. Concernant l'appel de la fonction dans la méthode setInterval, je pense qu'il est effectivement préférable d'utiliser la syntaxe Code :
Citation:
Code :
|
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com