Не люблю вложнные функции, они как-то запутывают

Код AS3:
var arrButton:Array = [b1, b2, b3, b4];
var arrPicture:Array = [p1, p2, p3, p4];
for(var i:int = 0; i < arrButton.length; i++)
{
arrButton[i].addEventListener(MouseEvent.CLICK, clickListener);
}
function clickListener(e:MouseEvent):void
{
var index :int = arrButton.indexOf(e.currentTarget)
if(index!=-1)
{
arrPicture[index].visible = !arrPicture[index].visible;
}
}
или если не хочется искать по массиву, по каким-либо соображениям:

Код AS3:
var arrButton:Array = [b1, b2, b3, b4];
var arrPicture:Array = [p1, p2, p3, p4];
var dictinaryButton: Dictionary = new Dictionary()
for(var i:int = 0; i < arrButton.length; i++)
{
dictinaryButton[arrButton[i]] = arrPicture[i]
arrButton[i].addEventListener(MouseEvent.CLICK, clickListener);
}
function clickListener(e:MouseEvent):void
{
dictinaryButton[e.currentTarget].visible = !dictinaryButton[e.currentTarget].visible;
}