상세 컨텐츠

본문 제목

[WML 기초강좌] 14. WML 타이머

프로그래밍/Mobile

by 라제폰 2008. 12. 13. 19:11

본문


* WML 타이머



<열세번째 예제>



<?xml version="1.0" encoding="ks_c_5601-1987"?>

<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "
http://www.phone.com/dtd/wml11.dtd">



<wml>

<card ontimer="#main">

<timer value="50"/>



<p>어서오세요</p>

<do type="accept"><go href="#main"/></do>

</card>



<card id="main">

<p>Welcome to the main page!</p>

</card>

</wml>



wml에서는 타이머를 가질수 있습니다.

바로 ontimer라는 이벤트를 이용하면 됩니다.



참고로 위의 <card ontimer="#main"> 이 부분은



<card>

<onevent type="ontimer">

<go href="#main" />

</onevent> 이것과 똑같습니다. 이젠 이해가 잘 되시죠? ^^



아무튼 ontimer타입으로 이벤트를 지정해주게 되면

카드의 내용들이 지정해준 시간동안만 보여준후

시간이 종료되면 <onevent>~</onevent>의 내용을

수행하게 되는 것입니다.



즉, 이 열세번째 예제는 실행하게 되면 어서오세요라는 문장이 출력되며

5초가 지나게 되면 #main.. 이름이 main인 카드로 이동하게 됩니다.



또한 타이머가 있는 카드에 <do>문장을 이용해 #main으로의 링크를 걸어놨기때문에

굳이 5초를 기다리지 않아도 accept버튼을 누르면 언제든지 main카드로 이동합니다.



그럼 시간은 어디서 정하느냐? 눈치 빠르신분은 벌써 알아차리셨겠지요?

예.. 바로 <timer> 요소입니다. 이 timer요소는 name, value 이렇게 두개의 속성을 가집니다

또한 이 timer요소는 하나의 카드에 하나만 존재할수 있으며

<onevent> 혹은 <card> 바로 다음에 존재해야 합니다.



그럼, timer의 사용법을 알아보겠습니다.

간단하게 <timer name="변수명" value="머무를시간" /> 이렇게 사용합니다.



value에 들어가는 시간은 십분의 일초 단위로 설정합니다.

즉, 위의 열세번째 예제에서는 50으로 설정하였으므로 50초가 아닌 5초가 되는것입니다.

1분으로 설정하고 싶으면 600으로 하면 되겠지요?



name에 들어가는 변수명은 남은 시간이 저장되는 변수입니다.

즉, <timer name="time0" value="100" /> 이렇게 하였다면

처음 소스가 실행돼었을때 time0 이라는 변수에는 100이란 숫자가 들어가고

시간이 지날수록 이 변수에 들어가있는 숫자는 점점 줄어들다가

time0이 0이 되는 순간 <onevent>~</onevent>에 있는 문장이 실행되는 것입니다.



다음의 예제를 실행해 보세요. 남은 시간을 수시로 알아볼수 있습니다..

소스에대한 설명은 굳이 안해도 잘 이해해 내시리라 믿습니다.^^



<?xml version="1.0" encoding="ks_c_5601-1987"?>

<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "
http://www.phone.com/dtd/wml11.dtd">



<wml>

<card ontimer="#main">

<timer name="time0" value="100"/>

<p>어서오세요</p>

<do type="options" label="check"><go href="#check"/></do>

</card>



<card id="main">

<p>Welcome to the main page!</p>

</card>



<card id="check">

<p>$(time0)남았음.</p>

</card>

</wml>

 

관련글 더보기