var FLAGONE = 1;var FLAGTWO = 2;var FLAGTHREE = 4; var combinedFlag = FLAGONE | FLAGTHREE; trace("FLAGONE: " + (combinedFlag & FLAGONE)); // traces "1"trace("FLAGTWO: " + (combinedFlag & FLAGTWO)); // traces "0"trace("FLAGTHREE: " + (combinedFlag & FLAGTHREE)); // traces "4"
// create the flags and put them in an array we'll// use to run through for tracing separate flagsvar flags:Array = new Array();var FLAGONE = 1; flags.push(FLAGONE);var FLAGTWO = 2; flags.push(FLAGTWO);var FLAGTHREE = 4; flags.push(FLAGTHREE); // return a list of flags that are in the combined flagfunction listFlags(combinedFlag:Number): Array { var result:Array = new Array(); for (var flag in flags) { // check if flag is in the combined flag if (combinedFlag & flags[flag]) { result.push(flags[flag]); } } return result;} var combinedFlag = FLAGONE | FLAGTHREE;trace(listFlags(combinedFlag)); // traces "4, 1"
// create the flags and put them in an array including descriptions// we'll use to run through for tracing separate flagsvar flags:Array = new Array();var FLAGONE = 1; flags[FLAGONE] = [FLAGONE, "Flag 1 for some purpose"];var FLAGTWO = 2; flags[FLAGTWO] = [FLAGTWO, "Flag 2"];var FLAGTHREE = 4; flags[FLAGTHREE] = [FLAGTHREE, "Flag 3 yay"]; // return a list of flags that are in the combined flagfunction listFlags(combinedFlag:Number): Array { var result:Array = new Array(); for (var flag in flags) { // check if flag is in the combined flag if (combinedFlag & flags[flag][0]) { // add the flag's description result.push(flags[flag][1]); } } return result;} var combinedFlag = FLAGONE | FLAGTHREE;trace(listFlags(combinedFlag));// traces:// "Flag 1 for some purpose"// "Flag 3 yay"