問題:叢集陣列之中的叢集又包含陣列,且叢集構成元件類型都不同時,要如何去改變元件屬性?
這一題看起來好像很複雜,但不管是陣列包含叢集或是叢集包含陣列,只要依照構成陣列和叢集的順序由外而內分開處理,一樣可以完成
範例程式:
在程式面板放一個叢集陣列,叢集包含(從索引值0開始排列):數值、文字、LED陣列、LED等4個元件
要改變那4個元件的顏色屬性,所以放4個Color Box元件
程式部分:依照由外而內的順序
1.首先在程式區對叢集陣列按滑鼠右鍵,從選單中選Create的Refererce那一項產生元件
2.使用Property Node元件連接,設定為Array Element的Refererce那一項
3.使用To More Specific Class元件連接,在上面taeget class接腳設定為Cluster(這裡要設定為和陣列內的資料格式相同),因為接下來要調用叢集內的屬性
4.使用Property Node元件連接,設定為All Objects[]那一項
5.All Objects[]所輸出的叢集內元件順序陣列是反過來排的,用Reverse 1D Array元件把順序反向轉正
6.使用Index Array指定要改變屬性的元件
7.先指定索引值0的數值元件,要改變的是數字顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為Digital
8.再使用Property Node元件連接,設定為TextColor那一項,改成輸入狀態
9.連上Color Box元件完成這段程式
10.再來指定索引值1的文字元件,要改變的是文字顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為String
11.使用Property Node元件連接,設定為TextColor那一項,改成輸入狀態
12.連上Color Box元件完成這段程式
13.再來指定索引值2的LED陣列,要改變的是LED顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為Array
14.再使用Property Node元件連接,設定為Array Element的Refererce那一項
15.再使用To More Specific Class元件連接,在上面taeget class接腳設定為Boolean
16.再使用Property Node元件連接,設定為Colors[4]那一項,改成輸入狀態
17.連上Color Box元件完成這段程式
18.最後指定索引值3的LED元件,要改變的是LED顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為Boolean
19.使用Property Node元件連接,設定為Colors[4]那一項,改成輸入狀態
20.連上Color Box元件完成這段程式
完成的全部程式碼
執行的結果
留言列表