Bonjour a tous,
voila, je decouvre le javascript, j'ai fait un peu de programmation orientée objet en java et je trouve le code plus propre, j'essaie d'appliquer la poo avec javascript, mais j'ai quelques difficultés :
est ce qu'on peut appeler une methode de la class définit dans une autre méthode (exple j'appelle "init" et "defilement" dans "affiche") et pourquoi je ne peux pas accèder correctement à mes attributs (message : this.photos has no protperties )?
debuggage avec la console javascript de firefox
Que veut dire le message : this.photos has no protperties
Voici mon code :
<!-- diaporamma
//########################################################################################//
// DIAPORAMMA DE PHOTOS //
// //
// entree : photos = tableau de photos du diaporamma //
// tps = intervalle de temps entre chaque photos //
// nomDoc = le nom qu on doit donner au document image img name="nomDocument" //
//########################################################################################//
function Diapo(photos,tps,nomDocument)
{
//methodes
// init
this.init = init ;
//affichage du diaporamma
this.affiche = affiche;
// methode qui permet de changer de photo a chaque fois
// que setInterval l appel increment de 1
this.defilement = defilement;
//retourne le nom du document img name
this.nomDoc = nomDoc;
// attributs
this.photoCourante ;
this.numPhotos =0;
this.nomDocument = nomDocument ;
this.tps = tps ;
this.photos = photos ;
this.lonTab =0 ;
}
function init()
{
// chargement de l image dans le cache du navigateur
this.photoCourante = new Image() ;
this.photoCourante.src = this.photos[0];
this.numPhotos=0;
}
function defilement()
{
this.numPhotos++;
if ( this.numPhotos == this.photos.length )
//ici j'ai le message erreur this.photos has no properties {
this.numPhotos = 0;
}
this.photoCourante.src = this.photos[this.numPhotos];
document["this.nomDoc"].src = this.photoCourante.src;
}
function nomDoc()
{
return this.nomDocument;
}
function affiche()
{
this.init;
setInterval("defilement()", this.tps);
}
// End -->