Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2008, 22h45   #1
Invité de passage
 
Inscription : mai 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 7
Points : 1
Points : 1
Par défaut utilisation de SetInterval

Bonjour à tous,

J'ai une petit soucis avec l'utilisation de setInterval et j'espère que vous allez pouvoir m'aider...

Je voudrais que ma_première_fonction appelle ma_deuxième_fonction à un intervalle de temps "attente" (que je change dynamiquement), et qu'elle lui passe une variable valeur en paramètre(variable qui varie comme son nom l'indique).

J'ai essayé ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
racine=this;
valeur=0;
attente=0;
 
ma_premiere_fonction();
 
 
function ma_premiere_fonction()
{
	valeur++;
	attente +=10;
	if(attente<=70)
	{	
		trace("ma_premiere_fonction : valeur - "+valeur+" attente - "+attente);
		id_Interval = setInterval(racine,"ma_deuxieme_fonction",attente*100,valeur);
	}
	else
	{
		clearInterval(id_Interval);
	}
}
 
function ma_deuxieme_fonction(param)
{
	attente +=10;
	valeur++;
	trace("valeur : "+param);
}
et tandis que je m'attendais à voir apparaitre

valeur : 0;
valeur : 1;
valeur : 2;
valeur : 3;
...

à un intervalle de temps croissant

en fait, valeur reste à 1 et l'intervalle de temps d'affichage est toujours le meme.

Quelqu'un aurait-il une idée sur ce que je fais mal ?


Merci d'avance,

Emilie
emilie_t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 19h29   #2
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
Salut,

dans le code joint, la fonction ma_premiere_fonction est appelé une seule fois,
l'intervalle n'est donc lancé qu'une seule fois.

la fonction ma_deuxieme_fonction ne fait que modifier les valeurs des variables.
(et sans même prendre en compte la valeur du paramètre)

voila un exemple qui fonctionne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
_level0.valeur = 1;
_level0.attente = 0;
 
ma_premiere_fonction();
 
function ma_premiere_fonction()
{
    trace("ma_premiere_fonction : valeur - "+_level0.valeur+" attente - "+_level0.attente);
    _level0.idInterval = setInterval(_level0, "ma_deuxieme_fonction", _level0.attente*100);
}
 
function ma_deuxieme_fonction()
{
    trace("temps : "+ getTimer() );
    trace("valeur : "+ _level0.valeur );
 
    _level0.valeur++;
    _level0.attente++;
    if(_level0.attente<=7)
    {
        clearInterval(_level0.idInterval);
        _level0.idInterval = setInterval(_level0, "ma_deuxieme_fonction", _level0.valeur*100);
    }
    else
    {
        clearInterval(_level0.idInterval);
    }
}
 
stop();
le première fonction lance juste le premier intervalle.

la seconde s'occupe d'accélérer la vitesse et de relancer l'intervalle.

;)
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 20h20   #3
Invité de passage
 
Inscription : mai 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 7
Points : 1
Points : 1
Merci beaucoup beekeep,

Non seulement, tu m'expliques pourquoi ça ne marche pas, mais en plus, tu me le démontres par un exemple qui marche.
Super sympa !

Merci

Emilie
emilie_t est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h42.


 
 
 
 
Partenaires

Hébergement Web