The*_*978 2 actionscript boolean toggle
这段代码是用简单的ActionScript编写的,但我假设我的这个问题会出现在所有具有布尔数据类型的语言中.
我只是单击舞台,以便我的布尔变量反转其值,而不是跟踪/打印/记录它的新值.但是,它总是跟踪真实,而不是在每次鼠标点击时在true和false之间切换.
我究竟做错了什么?
var myBool:Boolean;
stage.addEventListener(MouseEvent.CLICK, mouseClickHandler);
function mouseClickHandler(evt:MouseEvent):void
{
changeBoolean(myBool);
}
function changeBoolean(boolean:Boolean):void
{
boolean = !boolean;
trace(boolean);
}
Run Code Online (Sandbox Code Playgroud)
您正在将值传递给函数,而不是引用.这意味着你的changeBoolean函数中的boolean值是从myBool变量中复制的,所以当你在函数内部更改它时,它并没有真正改变myBool变量.基本上有两种解决方案: