>>351
基本的には Wait で待ち時間をつけるというのであっている.
しかし,単純に待ち時間をつけただけだと,途中で条件が外れた場合でも待ち時間後にロックをかけてしまう.
つまり,途中で条件が外れた場合は Task を止める必要がある.
待ち時間が短いとあまり意味がないし,上手く動作もしないが,3秒とか5秒とか長くなるほど意味を持つ.

やり方はいろいろあるが,下記はそのうちの1つで,
Task の Properties の Collision Handling で Abort Existing Task を指定する方法.

Profile: Gravity Screen (161)
Enforce: no
State: Not Orientation [ Is:Face Up ]
Enter: Anon (181)
Abort Existing Task
A1: Perform Task [ Name:水平制御 Priority:%priority Parameter 1 (%par1):not 水平 Parameter 2 (%par2): Return Value Variable: Stop:Off ]

Exit: Anon (225)
Abort Existing Task
A1: Perform Task [ Name:水平制御 Priority:%priority Parameter 1 (%par1):水平 Parameter 2 (%par2): Return Value Variable: Stop:Off ]

水平制御 (194)
Abort Existing Task
A1: If [ %par1 eq 水平 ]
A2: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A3: System Lock
A4: Else
A5: Display Timeout [ Secs:* Mins:* Hours:* ]
A6: End If