Упрощение(без использования двумерного массива)

Код AS3:
var b:ByteArray = new ByteArray();
b.writeInt(parseInt("11100111"+
"01000010"+
"01000010"+
"01111110", 2));
b.writeInt(parseInt("01111110"+
"01000010"+
"01000010"+
"11100111", 2));
function bitFor(b:ByteArray, f:Function):void
{
var len:int = b.length;
var cntr:int = 0;
for(var i:int = 0; i < len; i ++)
{
var curr:int = b[i];
f(cntr,0x01 & (curr >> 7)); cntr++;
f(cntr,0x01 & (curr >> 6)); cntr++;
f(cntr,0x01 & (curr >> 5)); cntr++;
f(cntr,0x01 & (curr >> 4)); cntr++;
f(cntr,0x01 & (curr >> 3)); cntr++;
f(cntr,0x01 & (curr >> 2)); cntr++;
f(cntr,0x01 & (curr >> 1)); cntr++;
f(cntr,0x01 & curr); cntr++;
}
}
var bmd:BitmapData = new BitmapData(8, 8, true, 0);
bitFor(b, function(i:int,bool:Boolean)
{
bmd.setPixel32(i%8, int(i/8), bool?0xFF000000:0x00000000);
});
var bmp:Bitmap = new Bitmap(bmd, "auto", false);
bmp.scaleX = bmp.scaleY = 9;
addChild(bmp);
Добавлено через 10 часов 35 минут
Упрощённый вариант функции прохождения по битам.

Код AS3:
function bitFor(b:ByteArray, f:Function):void
{
var len:int = b.length;
var cntr:int = 0;
for(var i:int = 0; i < len; i ++)
{
var curr:int = b[i];
for(var j:int = 7; j > -1; j--)
f(cntr,0x01 & (curr >> j)), cntr++;
}
}