在Choregraphe裡,可以編寫自己的指令盒,完整地定義其運作。
我們已經在使用指導簡單修改指令盒腳本里瞭解了指令碼如何運作。如前面所介紹的,前兩步是自動完成,在指令碼中不受使用者的控制。第二步源於使用者建立的連結。但是您可以完全控制第三步,這一步會執行一部分您寫入指令盒指令碼的編碼。 編寫指令碼時,請不要忘記您定義的是一個模組類的方法,有多種可能性,包括屬性、訂閱至ALMemory事件等。
指令盒在完成了初始化以後,就可以被載入。每當啟用一個輸入點時,指令碼中就會有一個方法被呼叫:"onInput_
編寫指令碼時,可以隨時決定啟用一個輸出點。需呼叫的方法名為
方法/步驟
如何操作?
例如:
如果有一個onStopped輸出點是“啟用”型別,那麼呼叫“onStopped()”就應該可以達到目標;
如果有一個faceDetected(string)輸出點,就可以呼叫faceDetected("Robert")來表示檢測到Robert這個人。
在initialize(初始化)方法之上,有一個方法,與每個指令盒輸入點相關聯。
前三行完全是強制性的,對其進行修改會導致不可預測的行為發生。您應該修改的是初始化方法的內容。
> 可以初始化屬性(例如變數、針對其它模組的代理等)。
> 應該完成所有隻想進行一次的操作,因為這個指令盒不會在該行為結束前被銷燬。
會看到一個“onLoad”方法。每當載入指令盒時就會呼叫這個方法。以下三個事件都可以引起載入指令盒:
註釋:
由於指令盒載入時會呼叫這個方法,所以我們強烈建議您不要在這裡使用過於繁瑣的編碼。也就是說,如果一個指令盒的初始化用時過長,會延遲整個行為。如果是在一個時間軸上,那麼您甚至可能無法進行實時操作。
開始執行行為,指令盒處於根級。
> 指令盒包含在一個載入的行為關鍵幀裡。
> 指令盒包含在另一個指令盒中(即後者的子類為流程圖),並且父類指令盒上的一個“onStart”輸入點被啟用。
您還會看到一個“onUnload”方法。每當指令盒被解除安裝時就會呼叫這個方法。以下三個事件都會引起解除安裝指令盒:
> 停止行為。
> 指令盒包含在一個行為關鍵幀裡,而同一層上的另一個關鍵幀正被載入(由此,包含指令盒的關鍵幀就要被解除安裝)。
> 指令盒包含在另一個指令盒中(即後者的子類為流程圖),並且父類指令盒上的“onStop”輸入點被啟用。