作为一名 PHP 程序员,我非常习惯于程序流程逐行进行的事实,如果我调用必须返回某个值的 function1(),我知道程序不会继续,直到该函数返回。
现在,我正在使用 AIR 开发一个 AS3 应用程序,如果满足某些条件,我需要下载一些图像,不知道有多少,所以我使用这样的 For:
for (var w:int=0; w < newData_array[2]['content'].length; w++ ) {
for (var j:int=0; j < oldData_array[2]['content'].length; j++ ) {
if((oldData_array[2]['content'][j]['id'] == newData_array[2]['content'][w]['id']) && (oldData_array[2]['content'][j]['last_mod'] != newData_array[2]['content'][w]['last_mod'])){
//need to download a image...
}
}
}
如您所见,我只是比较每个数组中的每个元素(newData_array和oldData_array)。如果条件满足,我需要下载一些东西,因为我使用的是URLloader并且你知道这个函数是异步的,添加一个监听器,当下载完成时会触发一个事件,问题很清楚,因为urlloader 不会停止 for 循环(就像我在 PHP 类似的语言上所期望的那样)我只是要同时下载一堆图像,这会造成灾难,因为我不知道何时保存。所以我无论如何都需要使用监听器,但由于我对这种程序不太习惯,所以我非常卡住。
我对保存到磁盘的例程不感兴趣,那部分已经完成了,我只是想了解我应该如何构建这个算法来完成这项工作。