상세 컨텐츠

본문 제목

[WML 기초강좌] 13. 태스크와 이벤트 (2)

프로그래밍/Mobile

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

본문

* 태스크와 이벤트 (2)



<열두번째 예제>



<?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>



<onevent type="onenterforward">

<refresh>

<setvar name="x" value="0" />

</refresh>

</onevent>



<p>

OPTION태그

<select>

<option>

<onevent type="onpick">

<go href="#cd1">

<setvar name="x" value="1" />

</go>

</onevent>

$(x)번째 CARD

</option>



<option onpick=

"
http://www.fantastock.com/casino/index.wml">WML카지노</option>

</select>

</p>

</card>



<card id="cd1">

<p>

$(x)번째 선택.

</p>

</card>

</wml>



음..저번장에서 태스크와 이벤트에 대해 설명을 다하려고 했는데..

페이지가 길어지는 바람에 급히 -_- 두개의 페이지로 짤랐습니다.



우선 열두번째 예제는 이번 장을 다 공부하시면 해석이 쉽게 됩니다^^

아무튼..이번엔 이벤트입니다. 개념만 아시면 이해하기 쉬운곳입니다..(다 그렇겠지만..-_-;;)



전에 간단한 링크걸기(2) 강좌에서 보았던 내용으로 설명을 하여 보겠습니다. 그 강좌에서



<option onpick="#cd1">1번째 CARD</option>


이 문장은



<option>

<onevent type="onpick">

<go href="#cd1">

</go>

</onevent>

1번째 CARD

</option>



이 것과 같은 것이라고 말씀 드렸었습니다.



이벤트라는 것은 바로 저 <onevent> 라는 태그로 이용을 합니다.

즉 위에서는 <onevent>태그의 타입을 onpick..즉 항목이 선택되는 이벤트가 발생하였을시에

go href로 #cd1 카드로 이동을 하라..이렇게 이벤트를 지정해 준 것입니다.



이 <onevent>는 주로 <option>과 <card> 에서 사용이 되며

항상 <option>과 <card>의 맨 처음 선언되어야 합니다.



<onevent>의 속성은 type="" 이거 한가지 입니다.

type의 속성 값은 onpick, ontimer등이 있는데

type을 onpick 으로 해준 경우에는 그 항목이 선택되었을때

<onevent>~</onevent>의 내용들이 실행되게 됩니다.



윗부분에 나온 문장은 항목이 선택되었을때 cd1이라는 이름을 가진 카드로 이동하는 것이 되겠죠.

이처럼 선택되었을때 이행되는 구문이 go 태그일 경우에는 위처럼 줄여서 쓸 수가 있습니다.

<option onpick="이동할곳"> 이런식으로요.

이행되는 내용이 go 태그일 경우에 줄여 쓰는것은 <option>뿐아니라 <card>도 마찬가지입니다.



만약 항목이 선택되었을때 변수의 값을 설정한다고 가정해봅시다. 그렇다면


<option>

<onevent type="onpick">

<refresh>

<setvar name="변수" value="값" />

</refresh>

</onevent>

변수값 변경

</option>



이런식으로 되겠지요.. 줄여쓸수 있는 방법은 없구요.. 이해가 되시길 바랍니다 ^^;



자, 지금까지는 option 이벤트를 알아보았고 이젠 card 이벤트입니다.



카드이벤트에서 우리가 지금 공부할 것은 두가지 있는데요.

특정한 카드를 열었을때 무언가 특별한일(가령, 변수의 재지정이라던지..)이 일어나게

하고 싶을때 사용하는 onenterforward와 prev로 히스토리상 전 카드로 되돌아 왔을때

무언가 특별한 일이 일어나게 하고 싶을 때 사용하는 onenterbackward가 바로 그것입니다.



자 위의 열두번째 예제를 봅시다.



<card>

<onevent type="onenterforward">

<refresh>

<setvar name="x" value="0" />

</refresh>

</onevent>



이렇게 카드 첫부분에 onevent의 onenterforward이 선언되어 있습니다.

이것은 즉 이 카드에 처음 들어서면서 변수 x의 값을 0으로 지정한다는 뜻입니다.

그러므로 위 열두번째 예제의 실행화면에서 첫번째 선택항목이

1. 0번째 CARD.. 이렇게 되는 것입니다.



만약 ontnterforward가 없다면 소스 실행시 변수 x가 값이 없으므로

(go태스크 속에 있는 setvar는 cd1으로 넘어가면서 값을 설정하는 구문이기 때문입니다.)

1. 번째 CARD 이렇게 나왔겠지요.



onenterbackward이벤트도 뒤로가는 경우를 다룬다는 것을 빼곤

onenterforward와 이용법부터해서 다를것이 없습니다. 자, 모두 이해가 되시는지요?



< 참고 >

onenterforward이벤트에 연결되는 태스크가 <setvar>같은것이 아니고

단순한 <go>태스크라면 이것도 축소형으로 줄여쓸수가 있습니다.



<card>

<onevent type="onenterforward">

<go href="#cd1" />

</onevent>

이것은



<card onenterforward="#cd1"> 이것과 같은 의미가 됩니다. 다시 말하지면 go만 가능합니다.



< 주의 >

<card id="card1" onenterforward="#card1">



공부를 열심히 하신 분이라면 단번에 무엇을 의미하는지 아실겁니다.

이 소스의 결과는 브라우저다운 혹은 시스템 다운 입니다.. 무한루프에 빠지니까요..

 


관련글 더보기