SW 배움터/앱인벤터2

앱인벤터2 강좌 5: delay를 주는 2가지 방법

kusson 2016. 12. 29. 21:50
반응형
728x170

앱인벤터에서 단계별로 어떤 이벤트를 실행시키고 싶으면 delay를 줘야한다.

delay를 시키는 방법은 여러가지가 있을 수 있겠으나 여기에서는 2가지 방법을 소개한다.

 

먼저 아래 그림과 같이 systemTime을 이용하기 위한 버튼과 clock을 이용하기 위한 버튼등 2개의 버튼을 준비한다.

 

 

clock은 타임인터발을 1000으로 두고 나머지는 설정은 해제한다. 1000은 1초를 의미한다. 스크린하단의 delayTime은 실제

지연시간이 제대로 작동하는지 확인하기 위한 용도이다.

 

 

 

 

먼저 systemTime을 이용한 delay 방법을 살펴보자. "start" 버튼을 누르면 "안녕하세요"라는 말이 나오고 1초 후에 ""반갑습니다" 라는 말이 나오게 하자. 그러기 위해서는 "delay"블럭이 삽입되어야 한다. 중간의 delay 블럭을 보면 "블럭 element"에서 "clock1"을 누르면 나오는 서랍에서 "clock1.SystemTime"을 드래그해서 전역변수 "delayTime"에 끼우고 1000을 더해서 1초의 지연시간을 준다. "While test" 블럭에서 "SystemTime"과 "delayTime"을 비교하는데 "SystemTime"이 "delayTime"보다 1초가 작으므로 참이다. 참이면 1초동안 아무것도 하지않고 있다가 루프를 빠져 나온다.

  이리하여 "안녕하세요"란 말이 나온후 1초후에 "반갑습니다"라는 말이 나오게 된다.

 

 

 다음은 "clock"을 이용한 delay 방법이다. "clockSpeechStart" 버튼을 누르면 누르면 먼저 "안녕하세요"란 말이 나오고

"clcok1"을 "Enable" 시킨다. 클럭의 타임인터발을 1초로 두었으므로 1초에 한번씩 "delayCount"가 1씩 올라가고

if블럭에서 설정된 2초가 되면 클럭을 OFF시킨다. OFF와 동시에 "반갑습니다"란 말이 나오게 된다. 즉 "안녕하세요"란 말이 나온후 2초후에 "반갑습니다"란 말이 나온다. 원하는 시간이 되면 delayCount를 0으로 설정하고 루프를 빠져나온다.

 

이상으로 2가지 delay 방법을 알아보았다. 첫번째 "systemTime"을 이용한 방법은 1회성 delay가 필요한 경우 간단하게 사용할 수 있고 두번째 "clock"을 이용한 방법은 필요한 경우 또는 복잡한 경우에도 언제든지 사용할 수 있다는 장점이 있다.

 

유용하게 사용하기 바란다.

 

 

반응형
그리드형