this code is written in simple ActionScript, but i’m assuming this problem of mine would occur in all languages that have boolean datatypes.
i’m simply clicking the stage so that my boolean variable reverses its value and than traces/prints/logs it’s new value. however, it’s always tracing true instead of switching between true and false for each mouse click.
what am i doing wrong?
var myBool:Boolean;
stage.addEventListener(MouseEvent.CLICK, mouseClickHandler);
function mouseClickHandler(evt:MouseEvent):void
{
changeBoolean(myBool);
}
function changeBoolean(boolean:Boolean):void
{
boolean = !boolean;
trace(boolean);
}
You are passing a value to the function, not the reference. This means that boolean value inside your changeBoolean function is copied from myBool variable so when you changed it inside the function, it didn’t realy change myBool variable. There are basically two solutions to this: