AS3原子执行代码

时间:2011-11-27 14:34:44

标签: actionscript-3

我有两个在舞台上互相搜索的对象。它们以一定的速度向某个方向移动。这是通过Event.ENTER_FRAME完成的。一旦对象找到另一个对象,它将开始对两个对象进行某些修改,包括停止它。

现在,我想到了一个问题。如果对象A找到对象B,开始对对象B进行一些修改,并且从ObjectA获取CPU并将其提供给ObjectB,该怎么办?现在,对象B将找到ObjectA并将开始对ObjectA进行修改,即使ObjectA已经在执行此操作的过程中。这可以通过一种非常简单的技术来解决:一旦ObjectA找到ObjectB,它就会调用一个lock()方法。并且objectB在锁定时不会检查其他对象。问题是我不知道如何检查对象之间的距离(这是他们如何找到彼此)以及以原子方式锁定。

P.S。在过去的几个月里,我在Java中做了很多多线程编程,所以这些东西可能不适用于此。

感谢。

1 个答案:

答案 0 :(得分:2)

应该没有问题。 Flash不进行多线程。

您可以确定,一旦调用了事件函数,它就会在不中断其他事件的情况下运行。您可能需要考虑的唯一问题是您不知道将执行多个输入框架事件的顺序。如果订单很重要,您应该使用单个事件,以所需的顺序调用对象的事件方法。