Javascript / Flash:什么时候触发flash外部回调方法?

时间:2010-06-06 16:38:41

标签: javascript flash

我有一个使用javascript函数回调的flash应用程序(例如,当它通过套接字接收一些数据时,它将调用一个js脚本,它会根据给定的数据更改div的内容)。

Afaik,javascript中没有实际的互斥,所以我不确定我是否可以/需要模拟类似的东西:

callbackFunc() {
lock(mutex1)
foo
unlock(mutex1)
}
...
someOtherFunc() {
lock(mutex1)
bar
unlock(mutex1)
}

所以,问题是,这些回调何时被调用?它们是否在浏览器完成任务后立即排队等待执行,还是随机触发?

1 个答案:

答案 0 :(得分:0)

经过几个小时的研究,我看了this页面,在那里我看到了一个与我问过的问题非常接近的问题。

我想看到的是,如果套接字接收数据的速度比浏览器端脚本处理的速度快(例如,在接收到哪个浏览器应显示并隐藏gif动画半秒后每秒接收2个请求)会发生什么不打断它,如果他们试图修改同一个数组,那么我做了一些测试。

如果多个函数将值插入到数组中并且单个函数弹出它们(并在所述数组中存在太多数据时清除它们的间隔),则它就好像浏览器使用fifo方法来处理何时到执行这些功能(我不知道不同的浏览器是否以不同的方式处理它,我使用的是Firefox和Opera):它们不会中断正在执行的功能。

此外,当有两个或多个函数同时被调用时(例如,使用setTimeout(...,1000)),没有办法告诉下一个将调用哪个函数,所以我使用了一些简单的变量(如布尔值)来同步它们。

简而言之,当有可能的外部回调时,它们不会破坏另一个函数使用的全局对象,但如果你需要同步,则必须有一个模仿信号量的值。