Création tableau, variable undefined

Fermé
eliepse Messages postés 43 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 5 juin 2013 - 11 déc. 2012 à 21:06
eliepse Messages postés 43 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 5 juin 2013 - 14 déc. 2012 à 22:00
Bonjour à tous !
Je suis nouveau ici et j'espère ne pas avoir à vous importuner trop souvent (surtout que ça montrerai ma progression).

Bien, j'ai déjà une certaine connaissance dans divers codes (java, html, css, php, ...) et là je bloque. C'est bien parce que je ne trouve pas tout seul de réponse (que ce soit avec google ou avec mes méninges) que je viens vers vous.

Donc, voici mon problème : Je créé une variable tableau en javascript ( var eyes = []; ) et lorsque je tente de l'afficher avec une fonction alert ( alert(eyes); ), la boîte de dialogue m'affiche "undefined". Le soucis c'est que cela me pose problème pour la suite du code ! ...

Je vous met le code complet (enfin, presque puisque je suis en train de coder) :

$(function() {
function coord (A,B){
	if (A instanceof coord || B instanceof coord){
		this.x = B.x - A.x;
		this.y = B.y - A.y;
	}
	else{
		this.x = A;
		this.y = B;
	}
	this.desc = function (){return this.x+", "+this.y;}
}
function Eye (nom, centre, rayon){
	this.nom = nom;
	this.o = centre;
	this.r = rayon;
	this.ca = new coord (0,0);
	this.desc = function(){return "type: Eye\nnom: "+this.nom+"\ncentre: "+this.o.desc()+"\nrayon: "+this.r;};
	this.nom = nom;
}

function TheEyes (nom) {

	var eyes = [];
	this.nom = nom;
	
	alert(this.eyes);
	
    this.addEye = function(object) {this.eyes.push(object);};
    this.getEye = function(id){return this.eyes[id];};
	this.display = function (){
		$('body').append("<div id='"+this.nom+"'></div>");
		for (i=0; i < this.eyes.length; i++){
			var r = this.eyes[i].r;
			$('#'+this.nom).append("<div id='"+i+"-"+this.nom+"'></div>");
			$("#"+i+"-"+this.nom).css('position','absolute').css('left',this.eyes[i].o.x-r).css('top',this.eyes[i].o.y-r).css('width',r*2).css('height',r*2).css('border','1px solid grey');
		
			$("#"+i+"-"+this.nom).append("<div id='"+i+"--"+this.nom+"'></div>");
			$("#"+i+"--"+this.nom).css('position','absolute').css('width',2).css('height',2).css('background-color','grey');
		}
	};
	this.start = function(){
		alert(this.eyes);
		$('html').mousemove(function(mouse) {
		alert(this.eyes);
			for (i=0; i < this.eyes.length; i++){
				this.eyes[i].ca.x = mouse.pageX - this.eyes[i].x;
				this.eyes[i].ca.y = mouse.pageY - this.eyes[i].y;
				alert(this.eyes[i].ca.x+', '+this.eyes[i].ca.y);
			}
		});
	};
}

var centre = new coord (100,100);
var e1 = new Eye ('bop', centre,6);
centre = new coord (300,200);
var e2 = new Eye ('bup', centre,40);

var es = new TheEyes('es');

es.addEye(e1);
// es.addEye(e2);

es.display();
es.start();

});


Je reste dispo pour plus d'infos !
Merci d'avance pour toute aide, même non fructueuse ! :)
A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 déc. 2012 à 13:30
Salut,

ce ne serait pas:

var eyes = new Array;
	this.nom = nom;
	
	alert(this.eyes['nom']);
0
eliepse Messages postés 43 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 5 juin 2013
14 déc. 2012 à 22:00
J'ai finalement réussi à le faire marcher mais je ne me rappelle plus comment...
0