スマートフォンでウインドウカバーを操作したい。 TPOSが目標位置され、0から100までの整数である。今、私は自分の携帯電話上の位置を変更するたびに、メソッドゴラン:ステアリングウインドウカバー
func main() {
OnUpdate(func(tPos int) {
wc(tPos,cPos)
cPos = tPos
}
}
が呼び出されます。現在の位置cPosの変数もあります。 OnUpdateは、cPosとtPosの間の順序関係に応じて、ウィンドウを開閉する関数を呼び出す必要があります。この関数は次のようになります。
func wc(tPos int, cPos int){
switch{
case tPos == 0:
log.Println("close")
case tPos == 100:
log.Println("open")
case tPos > cPos:
t := time.Duration((tPos - cPos)*10*openTime)
log.Println("open")
time.Sleep(t * time.Millisecond)
log.Println("stop")
case tPos < cPos:
t := time.Duration((cPos - tPos)*10*closeTime)
log.Println("close")
time.Sleep(t * time.Millisecond)
log.Println("stop")
}
}
私の問題は、いくつかの遅延があるはずです。 OnUpdateが呼び出された後、3秒間のタイマーがあり、その後3秒間OnUpdateが再び呼び出されない限り、wcが呼び出されます。
しかし、私はこれを行う方法がわかりません。誰かがそれをする良い方法は何か教えてもらえますか?