Bonjour tout le monde,
J'utilise les objets en PHP et j'utilise prototype.js.
Comme je n'ai pas encore pris le temps de regarder comment est fait le développement objet en javascript, je m'y mets.
Tout d'abord voici ma classe :
j'ai un fichier JSON qui me permet de donner les propriétés de chaques cases de la carte (positions, image de fond, etc ..)
Là où je bloque c'est dans cette ligne :
this fait référence à CaseAffiche et non plus à ma classe.
Comment dois-je faire pour utiliser une méthode de ma classe à cet endroit?
merci de vos éclaircissement
Modifié par Leorilan (10 Sep 2009 - 13:32)
J'utilise les objets en PHP et j'utilise prototype.js.
Comme je n'ai pas encore pris le temps de regarder comment est fait le développement objet en javascript, je m'y mets.
Tout d'abord voici ma classe :
var Map = Class.create(
{
initialize : function(DefinitionMap)
{
this.MapJson = DefinitionMap.evalJSON();
},
AfficheDetailCase : function(CaseIndex)
{
var SpanText = document.createElement("span");
var myText = document.createTextNode( "Coordonnées de la case : X= "+this.MapJson.Cases[CaseIndex].CoordX + "/ Y= " + this.MapJson.Cases[CaseIndex].CoordY );
SpanText.appendChild(myText);
$('DetailCase').appendChild(SpanText);
},
AfficheCasesVide : function(myParams, Conteneur)
{
IndexCase = 0;
for(i=1;i<=myParams["NbCasesY"];i++)
{
for (j=1;j<=myParams["NbCasesX"];j++)
{
var CaseAffiche = document.createElement("div");
CaseAffiche.id = "Case|"+j+"|"+i;
CaseAffiche.className = "MapCaseVide";
var myText = document.createTextNode( i + "/" + j );
CaseAffiche.appendChild(myText);
Conteneur.appendChild(CaseAffiche);
CaseAffiche.onclick = function() { this.AfficheDetailCase(IndexCase); }
if (j == myParams["NbCasesX"])
{
var DivBoth = document.createElement("div");
DivBoth.style.clear = "both";
Conteneur.appendChild(DivBoth);
}
IndexCase++;
}
}
this.AjouteCasesurMap();
},
AjouteCasesurMap : function()
{
for (TmpCase in this.MapJson.Cases)
{
if(!Array.prototype[TmpCase])
{
$('Case|'+this.MapJson.Cases[TmpCase].CoordX+'|'+this.MapJson.Cases[TmpCase].CoordY).className = this.MapJson.Cases[TmpCase].Terrain;
}
}
}
}
)
j'ai un fichier JSON qui me permet de donner les propriétés de chaques cases de la carte (positions, image de fond, etc ..)
Là où je bloque c'est dans cette ligne :
CaseAffiche.onclick = function() { this.AfficheDetailCase(IndexCase); }
this fait référence à CaseAffiche et non plus à ma classe.
Comment dois-je faire pour utiliser une méthode de ma classe à cet endroit?
merci de vos éclaircissement

Modifié par Leorilan (10 Sep 2009 - 13:32)