解答发现感谢大家的答案。检查这篇文章的底部。AS3:如何设置类的值并防止它被更改?
我正在使用MVC,问题与我的模型有关。通过我的代码,我创建了一个可以创建瓷砖的电路板。板上的每个瓦片都会得到一个X和一个Y值。在此之后,我想阻止对二传手的访问,以防止自己再次意外地改变价值。
我想使用常量而不是变量,但似乎我必须在创建时定义值。换句话说:const myConst:uint; myConst = 2; //不起作用
现在我有一个我不满意的解决方法。当然有一个更清洁的方法。你可以在下面看到我的解决方法。
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; }
}
}
编辑。我去解决办法:
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; }
}
}
同意。但是必须有两个参数。他还有一个'y'。 – 2010-12-14 19:22:58
我很难理解文本,因为我对编程相对比较陌生。如果你能写一个简短的代码示例,我会很感激。 – Glacius 2010-12-14 19:25:45
它的工作原理。感谢您花时间写出这个例子。这对我帮助很大。起初,我不认为它会工作,因为我需要使用getter方法来检索值,但事实证明,您可以使用getter而无需setter。 – Glacius 2010-12-14 19:44:40