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 :

Propriété et variable [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 Propriété et variable
    Bonjour !

    Voici un exemple de code Flash Pascal qui... n'est pas bon.

    Je voulais essayer de faire une petite horloge, et j'ai commencé par la trotteuse. J'ai presque réussi mais il y a une variable que je n'arrive pas à passer : le nombre de secondes. Si je l'initialise, l'aiguille s'affiche correctement, mais elle ne bouge pas.
    J'ai remarqué que je pouvais faire varier _x et _y à partir de la procedure TTrotteuse.onEnterFrame, mais pas ma variable s.
    Quelle est la solution ?



    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
    uses Flash8, Math;
     
    {$FRAME_WIDTH  200}
    {$FRAME_HEIGHT 200}
    {$FRAME_RATE     1}
     
    type
      TTrotteuse=class(MovieClip)
        constructor Create;
        procedure onEnterFrame;
      end;
     
    var s: Integer;
     
    constructor TTrotteuse.Create;
    begin
      inherited Create(nil,'trotteuse',1);
     
      lineStyle(1, $000077);
     
      //s:=15;
     
      moveTo(0,0);
      lineTo(90*sin(_PI*s/30),-90*cos(_PI*s/30));
     
      _x:=100;
      _y:=100;
    end;
     
    procedure TTrotteuse.onEnterFrame;
    begin
      s:=s+1;
      if s=60 then s:=0;
    end;
     
    begin
      //s:=15;
      TTrotteuse.Create;
    end.
    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
    Voici ce que ça donne

    Attention, une variable non initialisée à une valeur NaN !

    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
     
    program Horloge;
     
    uses Flash8, Math;
     
    {$FRAME_WIDTH  200}
    {$FRAME_HEIGHT 200}
    {$FRAME_RATE     1}
     
    type
      TTrotteuse=class(MovieClip)
        constructor Create;
        procedure onEnterFrame;
      end;
     
    var s: Integer;
     
    constructor TTrotteuse.Create;
    begin
      inherited Create(nil,'trotteuse',1);
     
      lineStyle(1, $000077);
     
      moveTo(0,0);
      lineTo(0,-90);
     
      _x:=100;
      _y:=100;
     
      s := 0; // définir S (sinon S = NaN !)
    end;
     
    procedure TTrotteuse.onEnterFrame;
    begin
      s := (s + 1) mod 60; // maxi 60 secondes
      _rotation := 6 * s;  // maxi 360°
    end;
     
    begin
      TTrotteuse.Create;
    end.
    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
    C'est gentil d'avoir répondu si vite.

    Citation Envoyé par Paul TOTH Voir le message
    Attention, une variable non initialisée à une valeur NaN !
    "NaN", qu'est-ce que ça veut dire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      _rotation := 6 * s;  // maxi 360°
    Mais là, si je comprends bien, c'est le MovieClip qui tourne sur lui-même, n'est-ce pas ? Cette solution pourrait-elle aller si on rajoutait les autres aiguilles ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    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
    Citation Envoyé par Roland Chastain Voir le message
    C'est gentil d'avoir répondu si vite.



    "NaN", qu'est-ce que ça veut dire ?
    Not A Number du coup tout opération arithmétique est invalide et laisse la valeur NaN


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      _rotation := 6 * s;  // maxi 360°
    Mais là, si je comprends bien, c'est le MovieClip qui tourne sur lui-même, n'est-ce pas ? Cette solution pourrait-elle aller si on rajoutait les autres aiguilles ?
    oui à condition de mettre chaque aiguille dans un MovieClip différent.

    il sera plus efficace de faire tourner les 3 movieClip à leur rythme que de redessiner les aiguilles à chaque fois avec un sinus/cosinus etc...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 29/09/2013, 11h47
  2. Réponses: 1
    Dernier message: 21/02/2012, 09h53
  3. Réponses: 2
    Dernier message: 07/02/2007, 11h16
  4. Réponses: 10
    Dernier message: 19/02/2004, 12h58
  5. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 10h49

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