Solution trouvée grâce aux réponses de tous. Vérifiez le bas de ce message. J'utilise MVC et le problème concerne mon modèle. Avec mon code je crée une planche qui à son tour crée des tuiles. Chaque tuile sur le plateau obtient une valeur X et une valeur Y. Après cela, je veux empêcher l'accès au setter pour m'empêcher de changer accidentellement la valeur encore jamais. Je pensais utiliser une constante au lieu d'une variable, mais il semble que je doive définir la valeur au moment de la création. En d'autres termes: const myConst: uint; myConst = 2; // ne fonctionne pasAS3: Comment définir une valeur d'une classe et l'empêcher d'être modifiée?
À l'heure actuelle, j'ai une solution de rechange dont je ne suis pas satisfait. Sûrement il y a une manière plus propre. Vous pouvez voir mon travail ci-dessous.
package myboardgame
{
internal class Tile
{
private var _x:uint;
private var _y:uint;
private var _xLock:Boolean; // Makes sure that the X and Y values of a tile can only be set once to prevent errors
private var _yLock:Boolean; // " "
internal function set x(x:uint):void
{ if(!_xLock) {_x = x; _xLock = true;} else { throw new Error("Trying to change the one-time write access X tile value")}}
internal function get x():uint
{ return _x; }
}
}
Modifier. La solution que je suis allé avec:
package myboardgame
{
internal class Tile
{
private var _x:uint;
private var _y:uint;
public function Tile(x:uint, y:uint):void
{
_x = x;
_y = y;
}
internal function get x():uint
{ return _x; }
internal function get y():uint
{ return _y; }
}
}
D'accord. Mais il doit y avoir deux params. Il a aussi un 'y'. –
J'ai du mal à comprendre le texte parce que je suis relativement nouveau en programmation. Je serais vraiment reconnaissant si vous pouviez écrire un exemple de code court. – Glacius
Cela fonctionne. Merci d'avoir pris le temps d'écrire l'exemple. Cela m'a beaucoup aidé. Au début, je ne pensais pas que cela fonctionnerait parce que j'ai besoin d'utiliser une méthode getter pour récupérer la valeur, mais il s'avère que vous pouvez utiliser un getter sans avoir un setter. – Glacius