Thanks for the helpfull feedback
Mark Winterhalder wrote:
Jiri,
if() isn't too bad, especially since you will possibly want to permit
multiple restrictions (like numbers /and/ letters, or Latin letters
plus umlauts). If you use if() and combine that with appending to the
restriction instead of setting it (+= instead of =), you gain
flexibility. That way, you could also split lower case and upper case
letter restrictions, and introduce a case insensitive restriction that
is set to (UPPER_CASE | LOWER_CASE) -- it would have both bits set, so
it would "hit" for both tests and append the restrictions to the "a-z
A-Z " you already have now. That's just one example, the idea is not
to have a fixed number of selections, but "groups" that you can switch
on bit by bit, plus some predefined combinations (like the case
insensitive letter example) for convenience.
Also, don't test (restriction & 2), but (restriction & NUM_ONLY). That
way, it's more readable, and you don't have to change all 2s if you
decide to reorder your flags. Even more pedantic :), test
((restriction & NUM_ONLY) == NUM_ONLY) so you don't run into problems
if you want to have flags that have multiple bits set later on.
HTH,
Mark
On Thu, Apr 2, 2009 at 12:08 PM, Jiri <jiriheitla...@googlemail.com> wrote:
I am new to bitwise operators, so I am trying to learn it.
I have the following code and it works half. I am using a switch case to get
the result, but this is messing things up. I could revert to and if - else
statement, but I was wondering if there is a more elagant way of doing it. I
post my code below, and would have some advice.
var NO_RESTRICTION:int = 1;
var NUM_ONLY:int = 2;
var CHAR_ONLY:int = 4;
var RESTRICTION:int = NUM_ONLY ;
function setInputCharRestriction(tInt:int):void {
RESTRICTION = tInt | tInt&2 | tInt&3;
}
function getRestrict():String{
var tRestrict:String = '';
trace('all ' , Boolean(RESTRICTION&1))
trace('num ' , Boolean(RESTRICTION&2))
trace('char ' ,Boolean(RESTRICTION&4))
switch(RESTRICTION){
case RESTRICTION&1 :
tRestrict +="\u0020-\u007E";
trace('all')
case RESTRICTION&2:
tRestrict =" 0-9";
trace('num')
case RESTRICTION&4:
tRestrict =" A-Z a-z";
trace('char')
}
trace('restrict field ' , tRestrict)
return tRestrict;
}
getRestrict()
Thank you.
Jiri
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders