2011-11-27 28 views
0

我有兩個對象在舞臺上搜索另一個。他們以一定的速度朝某個方向移動。這是通過Event.ENTER_FRAME完成的。一旦對象找到其他對象,它就會開始對這兩個對象進行某些修改,包括停止對象。AS3原則上執行代碼

現在,有一個問題出現了。如果對象A發現對象B,則開始對對象B做一些修改,並且CPU從ObjectA中獲取並提供給ObjectB。現在,對象B將找到ObjectA並且將開始在ObjectA上進行修改,即使ObjectA已經在執行此操作。這可以用一個非常簡單的技術來解決:一旦ObjectA找到ObjectB它調用一個lock()方法。而objectB在鎖定時不會檢查其他對象。問題是我不知道如何檢查對象之間的距離(這是他們如何找到彼此)和以原子方式鎖定。

P.S.過去幾個月我在Java中做了很多多線程編程,所以也許這些東西在這裏不適用。

謝謝。

回答

2

應該沒有問題。 Flash不會執行多線程。

可以肯定的是,一旦調用了一個事件函數,它將不會被其他事件中斷而運行。您可能需要考慮的唯一問題是,您不知道多個輸入框架事件將被執行的順序。如果訂單很重要,則應該使用單個事件,以所需順序調用對象的事件方法。

+0

首先調用哪一個並不重要。我只是想確保一旦被調用,它就完成了在下一個調用之前完成它的工作。 –

+0

我只記得'addEventListener'中還有一個優先級參數。如果訂單很重要,但不需要動態,那將會很有用。 – Kapep