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

Flash Pascal Discussion :

Cause du ralentissement progressif d'une animation [Flash Pascal]


Sujet :

Flash Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    December 2011
    Messages
    4 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : December 2011
    Messages : 4 022
    Points : 15 113
    Points
    15 113
    Billets dans le blog
    8
    Par défaut Cause du ralentissement progressif d'une animation
    Bonjour !

    J'ai observé que l'animation suivante ralentit progressivement, même jusqu'à s'arrêter. Ce phénomène se produit aussi bien dans la fenêtre de prévisualisation de l'éditeur que dans Google Chrome.

    J'avais déjà fait la même observation avec un autre programme et j'avais résolu le problème je ne sais trop comment. Là, j'ai beau relire mon code : je ne vois rien d'anormal. Auriez-vous une idée de la cause de ce ralentissement ?

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    {$FRAME_WIDTH 432}
    {$FRAME_HEIGHT 24}
    {$FRAME_RATE 4}
    {$BACKGROUND $545454}{Couleurs.DarkGray}
     
    program Bits;
     
    (* FlashPascal 2 v14.04.22 *)
     
    uses
      Flash8, Couleurs;
     
    const
      MaxInt = $7FFFFFFF;
     
    type
      TPoint = class(MovieClip)
        procedure Tracer;
        constructor Create(Depth, x, y, Color: Integer);
        procedure SetColor(Color: Integer);
      end;
     
    procedure TPoint.Tracer;
    begin
      MoveTo(0, -4);
      CurveTo(+4, -4, +4,  0);
      CurveTo(+4, +4,  0, +4);
      CurveTo(-4, +4, -4,  0);
      CurveTo(-4, -4,  0, -4);
    end;
     
    constructor TPoint.Create(Depth, x, y, Color: Integer);
    begin
      inherited Create(nil, '', Depth);
      LineStyle(0, Color);
      BeginFill(Color);
      Tracer;
      EndFill();
      _x := x;
      _y := y;
    end;
     
    procedure TPoint.SetColor(Color: Integer);
    begin
      LineStyle(0, Color);
      BeginFill(Color);
      Tracer;
      EndFill();
    end;
     
    var
      a: array[0..31] of TPoint;
      i: Integer;
     
    type
      Horloge = class(MovieClip)
        procedure onEnterFrame; override;
      end;
     
    procedure Horloge.onEnterFrame;
    var
      x: Integer;
    begin
      if i < MaxInt then
      begin
        for x := 0 to 31 do
          if i and (1 shl x) > 0 then
            a[31 - x].SetColor(LawnGreen)
          else
            a[31 - x].SetColor(Gray);
        Inc(i);
      end;
    end;
     
    var
      x: Integer;
     
    begin
      for x := 0 to 31 do
          a[x] := TPoint.Create(
            x + 1,
            12 * x + 12 * (x div 8) + 12,
            12,
            Gray
          );
      i := 0;
      stage.scaleMode := 'noScale';
      Horloge.Create(nil, 'h', 0);
    end.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    November 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : November 2002
    Messages : 8 964
    Points : 28 427
    Points
    28 427
    Par défaut
    il manque un Clear() dans SetColor(), car là tu ajoutes un nouvel ordre graphique à chaque fois et Flash se retrouve à dessiner autant de fois le point que tu as appelé la méthode SetColor()
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    December 2011
    Messages
    4 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : December 2011
    Messages : 4 022
    Points : 15 113
    Points
    15 113
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    il manque un Clear() dans SetColor(), car là tu ajoutes un nouvel ordre graphique à chaque fois et Flash se retrouve à dessiner autant de fois le point que tu as appelé la méthode SetColor()
    Voilà qui est bon à savoir.

    J'ai dû faire l'erreur pas mal de fois sans m'en apercevoir.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/11/2009, 18h39
  2. Réponses: 1
    Dernier message: 13/12/2007, 08h15
  3. comment integer une animation swf dans une page
    Par naili dans le forum Intégration
    Réponses: 7
    Dernier message: 18/09/2002, 19h54
  4. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 17h11
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 18h59

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