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

JavaScript Discussion :

Erreur : invalid property assignment


Sujet :

JavaScript

  1. #1
    Membre habitué
    Avatar de Benbout
    Homme Profil pro
    Avide de savoir
    Inscrit en
    Avril 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Avide de savoir

    Informations forums :
    Inscription : Avril 2016
    Messages : 62
    Points : 142
    Points
    142
    Billets dans le blog
    1
    Par défaut Erreur : invalid property assignment
    Bonsoir, je suis débutant en javascript, en fait je m'y colles par la force des choses car l'api que j'utilise n'accepte que le javascript client-side (qui a l'air d’être un excellent language soit dit en passant).

    J'ai une erreur d'assignation et je ne la comprends pas dans le contexte posé, exemple de code :

    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
    var peds = [
        {instance: null, model: null, x: 290.8790, y: -1343.4332, z: 24.5377, rot: 150.389, scenario: "WORLD_HUMAN_SMOKING"},
        {instance: null, model: null, x: 292.3424, y: -1350.2299, z: 24.5378, rot: 90.648, scenario: "WORLD_HUMAN_MAID_CLEAN"}
    ];
     
    function scenario() {
     
            for(var p in peds){
                let pos = new Vector3();
                pos.X = p.x;
     
                // pos.X etant la propriété X du vector3 (type float)  tout comme la propriété x de peds.
                // suite du code
        }
    }
    Et je me retrouve coincé avec cette erreur (invalid porperty assignment). J'ai testé en faisant une affectation avec un float au hasard, ca fonctionne. J'ai du mal à cerner le probleme, les deux sont de type float.




    Un autre soucis que j'ai actuellement et où pareil j'ai du mal à comprendre le probleme (qui doit etre spécifique à Javascript ou/et aux languages à typage dynamiques) :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var drawSheep = false;
     
     
    onEvent.connect(function (eventName, args) {
     
        if (eventName === "dessine_moi_un_mouton") {
            drawSheep = !drawSheep;
        }
    });

    Je me retrouve avec une erreur du type : cannot read property drawSheep of undefined. Pourtant ma variable est définie sur false dès le départ.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par Benbout Voir le message
    [...]J'ai une erreur d'assignation et je ne la comprends pas dans le contexte posé, [...]


    "peds" est un Array d'Object, donc avant de parcourir un objet avec un "for in" il faut choisir l'objet avec un "for classique" ou un "for of"

    Exemple :

    Code HTML : 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
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
      <meta name="author" content="Daniel Hagnoul">
      <title>test</title>
      <style>
        * {
          box-sizing: border-box;
        }
        
      </style>
      <script>
        'use strict';
        
        document.addEventListener( "DOMContentLoaded", ev => {
          
        }, false );
        
        window.addEventListener( "load", ev => {
          
          var peds = [
            {
              instance: null,
              model: null,
              x: 290.8790,
              y: -1343.4332,
              z: 24.5377,
              rot: 150.389,
              scenario: "WORLD_HUMAN_SMOKING"
            },
            {instance: null, model: null, x: 292.3424, y: -1350.2299, z: 24.5378, rot: 90.648, scenario: "WORLD_HUMAN_MAID_CLEAN"}
          ];
           
          function scenario() {
     
            
            for ( const Obj of peds ){
              
              // debug, console touche F12
              // console.log( Obj, Obj.x )
              
              for ( const key in Obj ){
                
                // console.log( key, Obj[ key ] );
                
                // pour transférer la valeur de la clé d'un objet à un autre
               
                
                autreObj[ key ] = Obj[ key ];
                
                console.log( autreObj, autreObj[ key ] );
              }
            }
          }
          
          scenario();
     
        }, false );
      </script>
    </head>
    <body>
     
     
    </body>
    </html>

    Citation Envoyé par Benbout Voir le message
    [...]j'ai du mal à comprendre le probleme [...] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var drawSheep = false;
     
     
    onEvent.connect(function (eventName, args) {
     
        if (eventName === "dessine_moi_un_mouton") {
            drawSheep = !drawSheep;
        }
    });

    Je me retrouve avec une erreur du type : cannot read property drawSheep of undefined. [...]
    Je crois que le problème n'est pas la variable, mais onEvent.connect(function (eventName, args) que je ne comprends pas, il me manque le contexte.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre habitué
    Avatar de Benbout
    Homme Profil pro
    Avide de savoir
    Inscrit en
    Avril 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Avide de savoir

    Informations forums :
    Inscription : Avril 2016
    Messages : 62
    Points : 142
    Points
    142
    Billets dans le blog
    1
    Par défaut
    Bonjour Daniel, et bien moi qui pensait que le c#et le javascript étaient quasi similaires, je vais devoir passer par la case cours. Je vais esayer cela.

    Pour recontextualiser le probleme. Il s'agit d'une api qui hook les natives d'un jeu vidéo pour créer un mode online pour ce jeu. L'api est décomposée en deux parties, la partie serveur en c#, la partie client en javascript. A chaque connexion, le client télécharge les scripts clients.

    La fonction en question est appelé quand un evenement est triggered coté serveur pour le client. eventname correspond à un string. quant à l variable en question, elle sert d'etat pour un autre evenement qui lui est appelé chaque frame.



    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
    var drawAnimation = false;
    var currentMoney = null;
    var currentIMoney = null;
    var res = API.getScreenResolution();
    var screenOpacity = 255;
     
     
    API.onUpdate.connect(function (sender, args) {
     
        if (drawAnimation) { 
            API.drawText("Appuie sur F pour stopper l'animation", res.Width - 30, res.Height - 100, 0.5, 255, 186, 131, 255, 4, 2, false, true, 0);
        }
     
        if (currentMoney != null) {
     
            API.drawText("$" + currentMoney, res.Width - 15, 50, 1, 115, 186, 131, 255, 4, 2, false, true, 0);
        }
     
        if (currentMoney != null) {
            API.drawText("$" + currentMoney, res.Width - 15, 100, 0.9, 232, 44, 23, 255, 4, 2, false, true, 0);
        }
     
        if (screenOpacity != 255) {
            API.drawRectangle(0, 0, res.Width, res.Height, 0, 0, 0, screenOpacity);
        }
     
    });
     
    API.onServerEventTrigger.connect(function (eventName, args) {
     
        if (eventName === "refresh_money") {
            currentMoney = Number(args[0]).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
        }
     
        else if (eventName === "refresh_imoney") {
            currentMoney = Number(args[0]).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
        }
     
        else if (eventName === "screenOpacity") {
            screenOpacity = args[0];
        }
     
        else if (eventName === "animation_notification") {
            drawAnimation = !drawAnimation;
        }
    });
    Pour mes autres flux, tout roule, sauf pour celui que je t'ai énoncé et j'avoue ne rien y comprendre (j'imagine bien qu'il s'agit d'une erreur basique, étant donné mon faible niveau dans ce language)

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Vu le code du message 3, il ne manquerait pas "API" : API.onEvent.connect(function (eventName, args) { ?

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre habitué
    Avatar de Benbout
    Homme Profil pro
    Avide de savoir
    Inscrit en
    Avril 2016
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Avide de savoir

    Informations forums :
    Inscription : Avril 2016
    Messages : 62
    Points : 142
    Points
    142
    Billets dans le blog
    1
    Par défaut
    Je viens de trouver l'erreur ... mon abruti (au sens cordial du terme lol) de collègue accédait à ma variable depuis un autre script, hors son script était chargé avant le mien, d'ou l'erreur undefined ... une erreur d'inattention comme c'est souvent le cas. Merci pour ton aide Daniel.

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

Discussions similaires

  1. [rmappdata] Erreur : "Invalid figure user property"
    Par florent64 dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 12/07/2007, 17h19
  2. Erreur : invalid lvalue in assignment
    Par rafale001 dans le forum C
    Réponses: 7
    Dernier message: 28/02/2007, 11h57
  3. Erreur 3271 invalid property value
    Par schwinny dans le forum Access
    Réponses: 2
    Dernier message: 12/07/2006, 11h17
  4. [VB.NET]Erreur "invalid cross-thread operation"
    Par NicolasJolet dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2006, 12h38
  5. [debutant]erreur invalid lvalue in assignment
    Par Battosaiii dans le forum C
    Réponses: 3
    Dernier message: 30/11/2005, 17h32

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