IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 1 & ActionScript 2 Discussion :

probleme avec boucle "for"


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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.

  3. #3
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Fichiers attachés

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    clearInterval(intervalle);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  5. #5
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    clearInterval(intervalle);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  7. #7
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 Fichiers attachés

  8. #8
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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.

  9. #9
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 Fichiers attachés

  10. #10
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    };

  11. #11
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  12. #12
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 Fichiers attachés

  13. #13
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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

  14. #14
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    };
    ;)

  15. #15
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Fichiers attachés

  16. #16
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    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

  17. #17
    Membre à l'essai Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    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!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PERL]probleme avec boucle For
    Par snufx dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 13/02/2009, 22h20
  2. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo