Inserer Objet dans un tableau.

Résolu/Fermé
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - Modifié par Exileur le 27/05/2014 à 02:17
 Utilisateur anonyme - 28 mai 2014 à 17:01
Bonjour à tous,

Je vous explique mon problème, je souhaite créer différent objets puis, les stocker dans un tableau mais quand j'essaie de récupérer la variable dans le tableau, elle est considéré comme indéfinie :

Console.js :

function Objet (i, n, u, t)
{
this.id = i,
this.nom = n,
this.url = u,
this.type = t;
}

sprite.js

objets = new Array();
objets[0] = new Objet('1, MUR, image/mur.jpg, 0');
objets[1] = new Objet('2, CAISSE, image/caisse.jpg, 0');
objets[2] = new Objet('3, OBJECTIF, image/obj.jpg, 0');

interface.js

obj_nom = objets[o].nom;
obj_url = 'url('+objets[o].url+')';
alert(obj_nom+'-'+obj_url);

Voila, quand j'exécute le code, alert me renvoie undefinied-undefinied
Tout les fichiers sont bien inclu et il ne me semble pas y avoir d'erreurs

Je pensais que ça venais du tableau alors j'ai essayé :

objetst = new Objet('1, MUR, image/mur.jpg, 0');

obj_nom = objetst.nom;
obj_url = 'url('+objetst.url+')';
alert(obj_nom+'-'+obj_url);

Sans plus de résultat, je pense qu'il y a quelque chose qui doit clocher au niveau de la fonction, mais je ne vois pas quoi. Est-ce possible déjà ?

Je vous remercie de votre aide !!!!
Cordialement
Exlieur




N'oubliez pas de marquez votre post comme résolut lorsque vous avez eu les réponses à vos questions...
Au royaume des aveugles, les borgnes sont rois.
A voir également:

3 réponses

Utilisateur anonyme
28 mai 2014 à 16:38
Bonjour

Tu définis ta fonction Objet avec 4 paramètres, mais tu en passes un seul lors du 'new'
En effet, quand tu écris '1, MUR, image/mur.jpg, 0', tu n'écris pas 4 paramètres, mais une seule chaîne de caractères (à cause des apostrophes)
Tu aurais dû écrire
objets[0] = new Objet(1, 'MUR', 'image/mur.jpg', 0);
1
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
28 mai 2014 à 17:00
Effectivement... Cela fonctionne bien mieux !
Merci de votre aide !

Je me casser la téte a trouver une autre solution avec les tableaux multi dimension x)
0
Utilisateur anonyme
28 mai 2014 à 17:01
De rien :)
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
28 mai 2014 à 16:31
obj_url = 'url('+objets[o].url+')'; <--- Attention, tu as mis un o (lettre) à la place d'un 0 (chiffre) !!

C'est pareil sur plusieurs de tes lignes...
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
Modifié par Exileur le 28/05/2014 à 16:42
Le code n'est pas complet :

for (o = 0; o < objets.length; o++)
{
obj_nom = objets[o].nom;
obj_url = 'url('+objets[o].url+')';

switch (table[i][j])
{
case obj_nom:
document.getElementById(id).style.backgroundImage = obj_url;
break;
}
}

Voila la raison du "o".
j'ai fait un alert objets.length qui me retourne bien le nombre.
j'ai aussi fait un alert objets[0] qui me retourne bien Object
MAIS : alert objets[0].nom me retourne undefinied
0