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
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    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
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 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 : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    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
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    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.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/11/2009, 17h39
  2. Réponses: 1
    Dernier message: 13/12/2007, 07h15
  3. comment integer une animation swf dans une page
    Par naili dans le forum Intégration
    Réponses: 7
    Dernier message: 18/09/2002, 18h54
  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, 16h11
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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