AS3 : array length trace to 0,

Hello everybody,
I have this code working which has an XML file. This is the code for XML menu(no drop down) for website , i am working on, but i wonder when i traced the value of both arr2 & arr1 it returns 0, although i pushed the value.

stop();
var url:URLRequest= new URLRequest("Menu.xml");
var url_load:URLLoader= new URLLoader(url);

var num:int;
var Mc_grouped:MovieClip= new MovieClip();
var Menu_space:Number= 15;
addChild(Mc_grouped);
Mc_grouped.x=0;
Mc_grouped.y=0;
Mc_grouped.width=1100;
Mc_grouped.height=90;

var arr1:Array= new Array();
var arr2:Array= new Array();
url_load.load(url);
url_load.addEventListener(Event.COMPLETE, func0);
function func0(e1:Event)
{
    var Xml:XML= new XML(e1.target.data);
    num=Xml.children().length();
    for(var a:int= 0 ;a<Xml.children().length() ;a++)
    {
        arr1.push(Xml..menu[a].toString());
    }
    load_menu();
}

function load_menu()
{
    for ( var a:int=0; a<arr1.length; a++)
    {
        var Mc_menu:MovieClip= new MovieClip();
        Mc_menu.width= 100;
        Mc_menu.height= 0;
        Mc_menu.x= 50 + a * Mc_menu.width + Menu_space;
        Mc_menu.y= Mc_grouped.height/2;
        addChild(Mc_menu);
        text_label(arr1[a], a+1);
    } 
}

function text_label(lbl:String, q:int)
{
    var txtField:TextField= new TextField();
    menuss.addChild(txtField);
    button_movieClip(q);
    txtField.text= lbl;
    var heightt:Number= Mc_grouped.height;
    txtField.width= 150;
    txtField.x= 150 * q;
    txtField.y= 0;
}

function button_movieClip(K:int)
{
    var  mc1:sprite53= new sprite53();
    menuss.addChildAt(mc1,0); 
    mc1.name= "mc" + K;
    trace(mc1.name);
    mc1.x=150 * K;
    mc1.y= 0;
    mc1.width= 140;
    mc1.height= 30;
    arr2.push(mc1.name);
}
trace(arr1.length); // It return 0
trace(arr2.length); // It return 0