So what's wrong with this code:
if (this._iDrawLayer & ChipsGame.VIEW_LAYER_A == ChipsGame.VIEW_LAYER_A) {
// draw contents of layer A ...
}
nothing, really. Nonetheless it's not working in CS3 (yet again, prove me wrong).
Basically it's just the unoptimized check if a certain bit is set or not. Let's do some traces:
trace ("with ():", ((this._iDrawLayer & ChipsGame.VIEW_LAYER_A) == ChipsGame.VIEW_LAYER_A))
trace ("without ():", (this._iDrawLayer & ChipsGame.VIEW_LAYER_A == ChipsGame.VIEW_LAYER_A))
trace ("values :", this._iDrawLayer & ChipsGame.VIEW_LAYER_A , ChipsGame.VIEW_LAYER_A)
The result is this:
with (): true
without (): 1
values: 1 1
Interesting, isn't it?
It seems like the compiler chains the & and the == for some reason that escapes me...
So if you get something undesiered with bitwise operators ... use ( and ) around it.
nGFX