基本認識 此動作的主要功能就是加速運算和自訂函式 温馨提示 1.不要開著導演面版玩無限loop這招,運算會變慢,而且會很LAG 2.如果你同時開著導演面版又連續使用「執行事件」,恭喜你,你的flash當死了 3.所有動作未執行完,系統是不會觸發另一個事件 運作原理 這動作就是把事件0002的動作都搬來0001來運行,甚至0002未開始檢查也沒問題,亦不會損0002的重覆次數,但0002不能是「已結束並不在檢查狀態」 即是怎樣呢? 同人程式碼以「事件」作單位,以某個次序排列一起,然後系統會逐一且盲目地檢查各個事件,通過的話則執行,否則檢查下一個事件。就是因為這個原因,越多事件,運算就越慢。而這動作則可以透過減少盲目檢查,加速運算。 { 設有事件A、B、C: 運作次序:A->B->C 不使用執行事件:盲目找出A然後執行->盲目找出B然後執行->盲目找出C然後執行 使用執行事件:盲目找出A然後執行->直接執行B->直接執行C } 回到最上文的例子,再解釋一下各個選項: 選項1:不看檢查,直接執行事件0002的動作 選項2:被指定的事件 (事件0002) 的檢查、動作都無條件執行一次 (即是方便某FK玩null變數宣告法(X),見圖一) 選項3:要檢查都通過了才執行事件0002的動作 (迷聲:如果都通過了,不用通過這個動作也會自行觸發事件0002啦) 不過要注意一下每項檢查和動作執行的順序(見圖一) 進階槪念 - for迴圈 然後某FK做了一個測試,用這招來玩for-loop,效果非常好~ 運算目標:a不斷遞增,直至a=10 結果0.1秒就運算完畢,舊招是要用上1秒才搞定 ![]() 上圖:使用新招的for loop^ 圖三:使用舊招的for loop 這還可以在事件運行中for 迴圈,見下圖 ![]() 1.s被設為1 2.執行0002 3.a遞增1 4.若a<10,重複2. 5.s被設為2 輸出: >任務變數: s=>1 >任務變數: a=>1 >任務變數: a=>2 >任務變數: a=>3 >任務變數: a=>4 >任務變數: a=>5 >任務變數: a=>6 >任務變數: a=>7 >任務變數: a=>8 >任務變數: a=>9 >任務變數: a=>10 >任務變數: s=>2 [00:00:18] 事件觸發:0001 進階槪念 - 擺脫連續執行上限 某FK又做了一次調試,就是自己指定執行自己,即在事件0001執行事件0001的動作(圖四) 本來以為flash會crash,結果沒有... 這是應該小哈猜到有人會這樣玩,所以當累積指定次數後(不管是在哪個事件指定),都會跳過那個事件。 例如圖四的例子 運算目標:a不斷遞增,直至a=20000,然後說出a的值 結果(圖五): 系統把那個事件直接刪掉 裡面的動作碰也沒碰過 經過測試,執行事件動作只能連續使用1000次 如果要運算到a會大於1000,會讓事件進入「已結束並不在檢查狀態」,即使剩餘重覆999999次數也一樣, 例如事件0001進入了「已結束並不在檢查狀態」,剩餘重覆999999次數, 如果事件0002包含"執行事件動作-0001",事件0002會處於"即使檢查通過,0002也不被執行"的狀態, 即是事件0002會卡在"檢查通過"的檢查狀態 | ![]() (圖一) ![]() (圖二) ![]() (圖三) ![]() (圖四) ![]() (圖五) |
同人小技巧 >




