flex调用js方法的怪问题

我有一个as的方法 想返回一个经纬度的坐标给前台,用一个js方法接收
大概是这个样子的:

 if(ExternalInterface.available){
                    try
                    {
                        ExternalInterface.call("report", lon, lat);
                    } 
                    catch(error:Error) 
                    {
                        trace(error.message);
                    }

                }

js方法:
function report(lon,lat){
alert(lon+"---"+lat);
}

运行后发现会报错 #1032堆栈上溢

然后我把参数去掉只是单纯的调用js方法

 if(ExternalInterface.available){
                    try
                    {
                        ExternalInterface.call("report");
                    } 
                    catch(error:Error) 
                    {
                        trace(error.message);
                    }

                }

js方法:
function report(){
alert(1111);
}

结果调用成功

有遇到这个问题的师兄么:(

 看看你lon和lat什么类型,转换成字符串试试
 ExternalInterface.call("report", lon+"", lat+"");

看你lon和lat什么类型,转换成字符串试试
ExternalInterface.call("report", lon+"", lat+"");