Flex多函数同时被调用时,执行顺序?

比如有三个函数:
function f1():void{
//do something
f2();
f3();
}

function f2():void{//do something}
function f3():void{//do something}

如果f2运行过长,f2还没有运行完f3就开始运行。
这是怎么回事?
有高人知道怎么解决吗。
(我试过在f2运行后,间隔x秒再执行f3,但是这样写总感觉有点不妥。。。哈哈)
[b]问题补充:[/b]
说一下我的实际设计内容吧,呵呵。
我的f2相当于调用了一个递归函数处理一个数据集合Array,
f3根据f2处理后的Array数据动态创建一个甘特图(这个过程有点慢)。
运行程序时,结果没有问题,f3是得到了f2处理后的数据。
由于动态创建的甘特图时间有点长,我想看看具体用了多少时间,然后想做一个
让用户等待的效果。
于是我就这样:
var a:Number= new Date().valueOf();
f2();
f3();
var b:Date = new Date().valueOf();
trace(b-a);
这时候问题就出来了啊,trace出来的毫秒数明显没有包括f3处理时间,晕。
这怎么办啊?本人接触flex时间不长,还请各位指教啊,哈哈。
"蔡华江":说的有理,f2方法实际上应该是处理完了才处理的f3。

对啊,就是绘制的响应时间过长啊,这个时间是无法得到的,如果你不改变当前的设计,只能自己估算运行时间。
如果甘特图很大的话,正确的做法是甘特图不要一下都绘制出来,你总玩过游戏吧,游戏地图那么大,不可能一次都画出来吧。具体问题还要具体分析

在所有情形下都是有先后顺序执行的。
如果f2还没完就运行f3只能说明f2执行完了。
举个例子。window.show();来显示一个窗口。
看起来,窗口还没显示,但是程序运行到后面去了。
其实对于程序来说,窗口的方法已经调用完成了。没显示不关它的事。

我理解你的意思
你是说f2响应的时间过长是吧,这还是源于设计上的问题,f2很可能是绘制List等操作,flex中类似这种“绘制”的时间会很长,而且时间无法预测。也就是说,如果f2的响应时间过长,你应该改变当前的设计。
如果f2执行的是flex中的异步事件,那就好办了,只需要在返回的结果处设置标志位就可以了