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 25/01/2008, 08h26   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Par défaut probleme avec boucle "for"

Bonjour a tous

suite a ce tutoriel " http://www.zoneflash.net/tutoriaux/t040.php "
je decide d'ameliorer mon animation en rajoutant 2 clip que j'appele "guide1" et "guide2" chaqun contenant un autre clip nommé "point"
et donc pour animé le tous g decidé de rajouter la boucle for

donc voici le code d'origine:

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
32
33
34
35
36
37
38
39
40
41
42
vitesse = 5;
distanceMin = 10;
 
initialiser = function () {
clearInterval(intervalle);
this.createEmptyMovieClip("trajectoire", 0);
trajectoire._x = guide._x;
trajectoire._y = guide._y;
trajectoire.clear();
trajectoire.lineStyle(3, "0xFFFFFF", 100);
guide.gotoAndStop(1);
oldx = guide.point._x;
oldy = guide.point._y;
trajectoire.moveTo(oldx, oldy);
guide.point._visible = false;
intervalle = setInterval(nextImage, vitesse);
};
 
nextImage = function () {
guide.nextFrame();
if (guide._currentframe == guide._totalframes) {clearInterval(intervalle);
} else {
var newx = guide.point._x;
var newy = guide.point._y;
var dx = newx-oldx;
var dy = newy-oldy;
var d = Math.sqrt(dx*dx+dy*dy);
if (d>distanceMin) {
trajectoire.moveTo(newx, newy);
} else {
trajectoire.lineTo(newx, newy);
}
oldx = newx;
oldy = newy;
}
};
 
initialiser();
 
playAgain.onPress = function() {
initialiser();
};

et voici le mien apres avoir rajouter les boucle et fait quelque correction ,malhersemnt rien ne s'affiche (je pense que le pb pourrais venir du ciblage)

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
32
33
34
35
36
37
38
39
40
41
42
43
vitesse = 5;
distanceMin = 10;
 
initialiser = function () {
	for (i=1; i<3; i++) {
clearInterval(intervalle);
this.createEmptyMovieClip("trajectoire", 0);
trajectoire._x = this["guide"+i]._x;
trajectoire._y = this["guide"+i]._y;
trajectoire.clear();
trajectoire.lineStyle(3, "0xFFFFFF", 100);
this["guide"+i].gotoAndStop(1);
oldx = this["guide"+i].point._x;
oldy = this["guide"+i].point._y;
trajectoire.moveTo(oldx, oldy);
this["guide"+i].point._visible = false;
intervalle = setInterval(nextImage, vitesse);
};
 
nextImage = function () {
guide.nextFrame();
if (this["guide"+i]._currentframe == this["guide"+i]._totalframes) {clearInterval(intervalle);
} else {
var newx = this["guide"+i].point._x;
var newy = this["guide"+i].point._y;
var dx = newx-oldx;
var dy = newy-oldy;
var d = Math.sqrt(dx*dx+dy*dy);
if (d>distanceMin) {
trajectoire.moveTo(newx, newy);
} else {
trajectoire.lineTo(newx, newy);
}
oldx = newx;
oldy = newy;
}
};
}
initialiser();
 
playAgain.onPress = function() {
initialiser();
};
je vous serai reconnaissent de l'aide que voux pourrez m'apporter
merci
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 12h36   #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 234
Points : 2 234
Salut et bienvennue sur dvp

j'ai remarqué plusieurs erreurs dans ton code.

1- l'accolade fermante de ta boucle for est au mauvais endroit

2- tu utilise this["guide"+i] au lieu de guide pour en gérer plusieurs,
mais il reste un guide.nextFrame(); dans le code.

3- tu lances 3 fois le même interval.

voila pour les pistes, n'hésite pas si tu rencontre des difficultés pour resoudre ces problèmes.
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h07   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par beekeep Voir le message
Salut et bienvennue sur dvp

j'ai remarqué plusieurs erreurs dans ton code.

1- l'accolade fermante de ta boucle for est au mauvais endroit

2- tu utilise this["guide"+i] au lieu de guide pour en gérer plusieurs,
mais il reste un guide.nextFrame(); dans le code.

3- tu lances 3 fois le même interval.

voila pour les pistes, n'hésite pas si tu rencontre des difficultés pour resoudre ces problèmes.

Salut beekeep et merci pour ton aide
g fait comme tu ma dis malhersement rien ne s'affiche
(je n'ai pas compris au sujet de l'interval dont tu parle)
voici ce que j'ai fait

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
vitesse = 5;
distanceMin = 10;
 
initialiser = function () {
	for (i=1; i<3; i++) {
clearInterval(intervalle);
this.createEmptyMovieClip("trajectoire", 0);
trajectoire._x = this["guide"+i]._x;
trajectoire._y = this["guide"+i]._y;
trajectoire.clear();
trajectoire.lineStyle(3, "0xFFFFFF", 100);
this["guide"+i].gotoAndStop(1);
oldx = this["guide"+i].point._x;
oldy = this["guide"+i].point._y;
trajectoire.moveTo(oldx, oldy);
this["guide"+i].point._visible = false;
intervalle = setInterval(nextImage, vitesse);
	}
};
 
nextImage = function () {
	for (i=1; i<3; i++) {
this["guide"+i].nextFrame();
if (this["guide"+i]._currentframe == this["guide"+i]._totalframes) {clearInterval(intervalle);
} else {
var newx = this["guide"+i].point._x;
var newy = this["guide"+i].point._y;
var dx = newx-oldx;
var dy = newy-oldy;
var d = Math.sqrt(dx*dx+dy*dy);
if (d>distanceMin) {
trajectoire.moveTo(newx, newy);
} else {
trajectoire.lineTo(newx, newy);
}
oldx = newx;
oldy = newy;
}
};
}
initialiser();
 
playAgain.onPress = function() {
initialiser();
};

je met le fla se sera peut etre plus clair (mes explications etant approximative ...)
Fichiers attachés
Type de fichier : fla Sans nom-2.fla (64,0 Ko, 2 affichages)
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h33   #4
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 234
Points : 2 234
il me semble bien que tu as inversé la fin de la fonction nextImage et la fin de la boucle for dans cette même fonction.


Citation:
Envoyé par kentaro
je n'ai pas compris au sujet de l'interval dont tu parle
c'est par rapport à ces lignes de codes :
Code :
clearInterval(intervalle);
Code :
intervalle = setInterval(nextImage, vitesse);
c'est ce qui permet d'executer la fonction toutes les n milisecondes,
mais je suis pas sur que ce soit bien géré.

je regarderai un peu plus tard (busy)
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h46   #5
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par beekeep Voir le message
il me semble bien que tu as inversé la fin de la fonction nextImage et la fin de la boucle for dans cette même fonction.




c'est par rapport à ces lignes de codes :
Code :
clearInterval(intervalle);
Code :
intervalle = setInterval(nextImage, vitesse);
c'est ce qui permet d'executer la fonction toutes les n milisecondes,
mais je suis pas sur que ce soit bien géré.

je regarderai un peu plus tard (busy)
concernant les intervalles je ne les ai pas modifier du tuto original (mon 1er poste) est cela fonctione parfaitement ,c'est des que g rajouter les boucles que sa commence a fair caca,
pour ma part je pense que sa vient de ce genre de ciblage:
oldx = this["guide"+i].point._x;
"point" etant un clip (a l'interieur de guide) est comme qu'il y en a plusieur sa doit etre a cause de sa que sa foire.

en tous cas merci beekeep
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 19h18   #6
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 234
Points : 2 234
Citation:
Envoyé par kentaro Voir le message
pour ma part je pense que sa vient de ce genre de ciblage:
oldx = this["guide"+i].point._x;
"point" etant un clip (a l'interieur de guide) est comme qu'il y en a plusieur sa doit etre a cause de sa que sa foire.
ce point ne pose pas de problème.

par contre, pour ce qui est de la création et du nettoyage de l'intervalle,
il ne faut pas les laisser dans la boucle mais juste avant et après celle-ci.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
initialiser = function () {
clearInterval(intervalle);
for (i=1; i<3; i++) {
  this.createEmptyMovieClip("trajectoire", 0);
  trajectoire._x = this["guide"+i]._x;
  trajectoire._y = this["guide"+i]._y;
  trajectoire.clear();
  trajectoire.lineStyle(3, "0xFFFFFF", 100);
  this["guide"+i].gotoAndStop(1);
  oldx = this["guide"+i].point._x;
  oldy = this["guide"+i].point._y;
  trajectoire.moveTo(oldx, oldy);
  this["guide"+i].point._visible = false;
 }
intervalle = setInterval(nextImage, vitesse);
};
ensuite dans la fonction nextImage il ne faut pas nettoyer l'intervalle si seulement un des guide est sur sa dernière frame mais seulement si tout les guides sont sur leur dernière frame.
ce qui donne :
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
nextImage = function ()
{
    var bAllGuidsFinished:Boolean = true;
    for (i=1; i<3; i++)
    {
        this["guide"+i].nextFrame();
        if (this["guide"+i]._currentframe != this["guide"+i]._totalframes)
        {
            bAllGuidsFinished = false;
        }else{
            var newx = this["guide"+i].point._x;
            var newy = this["guide"+i].point._y;
            var dx = newx-oldx;
            var dy = newy-oldy;
            var d = Math.sqrt(dx*dx+dy*dy);
            if (d>distanceMin) {
            trajectoire.moveTo(newx, newy);
            } else {
            trajectoire.lineTo(newx, newy);
            }
            oldx = newx;
            oldy = newy;
    }
     if(bAllGuidsFinished)
        clearInterval(intervalle);

};
et ça devrai fonctionner

au passage j'ai vu que ton fichier Flash est en CS3,
vérifie bien que tu est en AS2 et non en AS3.
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 20h25   #7
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
g bien repris ton code malhersement j'ai juste un trait qui s'affiche ,avec aucune animation ,g mis le swf pour que tu vois ce que sa donne,sinon j'ai verifier est suis bien en AS2

merci pour ton aide man!
Fichiers attachés
Type de fichier : fla Sans nom-2.fla (57,5 Ko, 1 affichages)
Type de fichier : swf Sans nom-2.swf (1,9 Ko, 2 affichages)
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 21h51   #8
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 234
Points : 2 234
ton fichier est créé avec la CS3 (que je peux pas installer son mon pc )

enregistre le en compatibilité Flash 8 pour que je puisse le lire.
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 10h54   #9
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par beekeep Voir le message
ton fichier est créé avec la CS3 (que je peux pas installer son mon pc )

enregistre le en compatibilité Flash 8 pour que je puisse le lire.
voilou

merci man
Fichiers attachés
Type de fichier : fla flash8.fla (30,0 Ko, 1 affichages)
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 18h48   #10
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 234
Points : 2 234
Lut,

il y avait plusieurs erreurs :

- le ciblage : remplacé les this par _level0.
- un petite erreur de ma part dans le dernier code que je t'avais envoyé.

puis le fait que tu ai plusieurs guides oblige donc d'avoir plusieurs trajectoires et idem pour les positions.

tu peux voir dans le fichier joint que ça fonctionne aussi avec deux guides qui n'ont pas le même nombre de frames.

bye 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
vitesse = 5;
distanceMin = 15;
 
initialiser();
 
playAgain.onPress = function() {
    initialiser();
};
 
initialiser = function ()
{
    clearInterval(intervalle);
    for (i=1; i<3; i++)
    {
      _level0.createEmptyMovieClip("trajectoire"+i, _level0.getNextHighestDepth());
      _level0["trajectoire"+i]._x = _level0["guide"+i]._x;
      _level0["trajectoire"+i]._y = _level0["guide"+i]._y;
      _level0["trajectoire"+i].clear();
      _level0["trajectoire"+i].lineStyle(3, "0xFFFFFF", 100);
      _level0["guide"+i].gotoAndStop(1);
      _level0["oldx"+i] = _level0["guide"+i].point._x;
      _level0["oldy"+i] = _level0["guide"+i].point._y;
      _level0["trajectoire"+i].moveTo(_level0["oldx"+i], _level0["oldy"+i]);
      _level0["guide"+i].point._visible = false;
     }
    intervalle = setInterval(nextImage, vitesse);
};
 
 
 
nextImage = function ()
{
    var bAllGuidsFinished:Boolean = true;
    for (i=1; i<3; i++)
    {
        _level0["guide"+i].nextFrame();
 
          if (_level0["guide"+i]._currentframe != _level0["guide"+i]._totalframes)
        {
            bAllGuidsFinished = false;
 
                var newx = _level0["guide"+i].point._x;
            var newy = _level0["guide"+i].point._y;
            var dx = newx-_level0["oldx"+i];
            var dy = newy-_level0["oldy"+i];
            var d = Math.sqrt(dx*dx+dy*dy);
 
                if (d>distanceMin) {
            _level0["trajectoire"+i].moveTo(newx, newy);
            } else {
            _level0["trajectoire"+i].lineTo(newx, newy);
            }
            _level0["oldx"+i] = newx;
            _level0["oldy"+i] = newy;
           }
    }
    if(bAllGuidsFinished)
       clearInterval(intervalle);
};
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 20h27   #11
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par beekeep Voir le message
Lut,

il y avait plusieurs erreurs :

- le ciblage : remplacé les this par _level0.
- un petite erreur de ma part dans le dernier code que je t'avais envoyé.

puis le fait que tu ai plusieurs guides oblige donc d'avoir plusieurs trajectoires et idem pour les positions.

tu peux voir dans le fichier joint que ça fonctionne aussi avec deux guides qui n'ont pas le même nombre de frames.

bye 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
vitesse = 5;
distanceMin = 15;
 
initialiser();
 
playAgain.onPress = function() {
    initialiser();
};
 
initialiser = function ()
{
    clearInterval(intervalle);
    for (i=1; i<3; i++)
    {
      _level0.createEmptyMovieClip("trajectoire"+i, _level0.getNextHighestDepth());
      _level0["trajectoire"+i]._x = _level0["guide"+i]._x;
      _level0["trajectoire"+i]._y = _level0["guide"+i]._y;
      _level0["trajectoire"+i].clear();
      _level0["trajectoire"+i].lineStyle(3, "0xFFFFFF", 100);
      _level0["guide"+i].gotoAndStop(1);
      _level0["oldx"+i] = _level0["guide"+i].point._x;
      _level0["oldy"+i] = _level0["guide"+i].point._y;
      _level0["trajectoire"+i].moveTo(_level0["oldx"+i], _level0["oldy"+i]);
      _level0["guide"+i].point._visible = false;
     }
    intervalle = setInterval(nextImage, vitesse);
};
 
 
 
nextImage = function ()
{
    var bAllGuidsFinished:Boolean = true;
    for (i=1; i<3; i++)
    {
        _level0["guide"+i].nextFrame();
 
          if (_level0["guide"+i]._currentframe != _level0["guide"+i]._totalframes)
        {
            bAllGuidsFinished = false;
 
                var newx = _level0["guide"+i].point._x;
            var newy = _level0["guide"+i].point._y;
            var dx = newx-_level0["oldx"+i];
            var dy = newy-_level0["oldy"+i];
            var d = Math.sqrt(dx*dx+dy*dy);
 
                if (d>distanceMin) {
            _level0["trajectoire"+i].moveTo(newx, newy);
            } else {
            _level0["trajectoire"+i].lineTo(newx, newy);
            }
            _level0["oldx"+i] = newx;
            _level0["oldy"+i] = newy;
           }
    }
    if(bAllGuidsFinished)
       clearInterval(intervalle);
};

salut

chapeau l'artiste sa marche nickel ,toutefois et sans vouloir abusé de ton aide est t'il possible que le tracage commence directement et non pas quand j'appui sur le bouton (car je compte le supprimé)

en tous cas merci beaucoup pour ton aide c cool

edite:

c bon je viens de regler sa g mis (la fonction initialiser a la fin)

encore merci
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 07h23   #12
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
bonjour

desolé de revenir a la charge ,mais g encore un soucis conernant le code precedent ,en faite l'animation ce trouve par dessus toute les autres et j'aimerai quelle soit en background,j'ai passé la journée d'hier a faire des modif en changeant les valeur du _level en metteant des this est des root ainsi que integré la fonction swapdepth mais rien ni fait je vous met le swf pour constater par vous meme
merci a vous
Fichiers attachés
Type de fichier : swf flash8_modif.swf (19,5 Ko, 2 affichages)
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 11h11   #13
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
apparament le probleme viendrais de " getNextHighestDepth()" je l'ai donc remplacer par " getDepth() " j'obtiens a peu pres ce que je veux mais je n'ai qu'un clip qui demarre (au lieu des 2) donc si vous auriez une piste...

merci
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 11h20   #14
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 234
Points : 2 234
Salut,

au cas où tu n'aurai pas résolu ton problème :

tu peux créer un clip vide (mcContainer) dans ta scene dans lequel tu placera tout le reste de l'animation.

ensuite ajoute cette ligne de code pour inverser le niveau de tes clips trajectoire et celui du reste de l'animation :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
vitesse = 5;
distanceMin = 15;
 
initialiser();
 
playAgain.onPress = function() {
    initialiser();
};
 
initialiser = function ()
{
    clearInterval(intervalle);
    for (i=1; i<3; i++)
    {
      _level0.createEmptyMovieClip("trajectoire"+i, _level0.getNextHighestDepth());
      _level0.mcContainer.swapDepth(_level0["trajectoire"+i]);
      _level0["trajectoire"+i]._x = _level0["guide"+i]._x;
      _level0["trajectoire"+i]._y = _level0["guide"+i]._y;
      _level0["trajectoire"+i].clear();
      _level0["trajectoire"+i].lineStyle(3, "0xFFFFFF", 100);
      _level0["guide"+i].gotoAndStop(1);
      _level0["oldx"+i] = _level0["guide"+i].point._x;
      _level0["oldy"+i] = _level0["guide"+i].point._y;
      _level0["trajectoire"+i].moveTo(_level0["oldx"+i], _level0["oldy"+i]);
      _level0["guide"+i].point._visible = false;
     }
    intervalle = setInterval(nextImage, vitesse);
};
 

 
nextImage = function ()
{
    var bAllGuidsFinished:Boolean = true;
    for (i=1; i<3; i++)
    {
        _level0["guide"+i].nextFrame();

          if (_level0["guide"+i]._currentframe != _level0["guide"+i]._totalframes)
        {
            bAllGuidsFinished = false;

                var newx = _level0["guide"+i].point._x;
            var newy = _level0["guide"+i].point._y;
            var dx = newx-_level0["oldx"+i];
            var dy = newy-_level0["oldy"+i];
            var d = Math.sqrt(dx*dx+dy*dy);

                if (d>distanceMin) {
            _level0["trajectoire"+i].moveTo(newx, newy);
            } else {
            _level0["trajectoire"+i].lineTo(newx, newy);
            }
            _level0["oldx"+i] = newx;
            _level0["oldy"+i] = newy;
           }
    }
    if(bAllGuidsFinished)
       clearInterval(intervalle);
};
;)
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 11h37   #15
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par beekeep Voir le message
Salut,

au cas où tu n'aurai pas résolu ton problème :

tu peux créer un clip vide (mcContainer) dans ta scene dans lequel tu placera tout le reste de l'animation.

ensuite ajoute cette ligne de code pour inverser le niveau de tes clips trajectoire et celui du reste de l'animation :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
vitesse = 5;
distanceMin = 15;
 
initialiser();
 
playAgain.onPress = function() {
    initialiser();
};
 
initialiser = function ()
{
    clearInterval(intervalle);
    for (i=1; i<3; i++)
    {
      _level0.createEmptyMovieClip("trajectoire"+i, _level0.getNextHighestDepth());
      _level0.mcContainer.swapDepth(_level0["trajectoire"+i]);
      _level0["trajectoire"+i]._x = _level0["guide"+i]._x;
      _level0["trajectoire"+i]._y = _level0["guide"+i]._y;
      _level0["trajectoire"+i].clear();
      _level0["trajectoire"+i].lineStyle(3, "0xFFFFFF", 100);
      _level0["guide"+i].gotoAndStop(1);
      _level0["oldx"+i] = _level0["guide"+i].point._x;
      _level0["oldy"+i] = _level0["guide"+i].point._y;
      _level0["trajectoire"+i].moveTo(_level0["oldx"+i], _level0["oldy"+i]);
      _level0["guide"+i].point._visible = false;
     }
    intervalle = setInterval(nextImage, vitesse);
};
 

 
nextImage = function ()
{
    var bAllGuidsFinished:Boolean = true;
    for (i=1; i<3; i++)
    {
        _level0["guide"+i].nextFrame();

          if (_level0["guide"+i]._currentframe != _level0["guide"+i]._totalframes)
        {
            bAllGuidsFinished = false;

                var newx = _level0["guide"+i].point._x;
            var newy = _level0["guide"+i].point._y;
            var dx = newx-_level0["oldx"+i];
            var dy = newy-_level0["oldy"+i];
            var d = Math.sqrt(dx*dx+dy*dy);

                if (d>distanceMin) {
            _level0["trajectoire"+i].moveTo(newx, newy);
            } else {
            _level0["trajectoire"+i].lineTo(newx, newy);
            }
            _level0["oldx"+i] = newx;
            _level0["oldy"+i] = newy;
           }
    }
    if(bAllGuidsFinished)
       clearInterval(intervalle);
};


salut beekeep merci de m'aider

le truc c'est que j'ai fait comme tu ma dit mais sa fait comme d'hab

merci a toi
Fichiers attachés
Type de fichier : fla flash8_modif.fla (54,0 Ko, 1 affichages)
kentaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 19h22   #16
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 234
Points : 2 234
Lut,

les clips placés graphiquement et manipulés par actionscript doivent être présents dans la frame ou ils sont utilisés.

et fait attention aux copier/coller qui tuent. (la ligne en gras)

et j'avais fait une tite faute d'orthographe sur la fonction swapDepths.

bye
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 20h15   #17
Invité de passage
 
Inscription : janvier 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 13
Points : 1
Points : 1
Citation:
Envoyé par beekeep Voir le message
Lut,

les clips placés graphiquement et manipulés par actionscript doivent être présents dans la frame ou ils sont utilisés.

et fait attention aux copier/coller qui tuent. (la ligne en gras)

et j'avais fait une tite faute d'orthographe sur la fonction swapDepths.

bye

parfait ,merci pour toute ton aide beekeep!!
kentaro 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 18h11.


 
 
 
 
Partenaires

Hébergement Web