Création tableau, variable undefined

eliepse Messages postés 47 Statut Membre -  
eliepse Messages postés 47 Statut Membre -
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 5413 Statut Membre 894
 
Salut,

ce ne serait pas:

var eyes = new Array;
	this.nom = nom;
	
	alert(this.eyes['nom']);
0
eliepse Messages postés 47 Statut Membre
 
J'ai finalement réussi à le faire marcher mais je ne me rappelle plus comment...
0