제 9 장 wmlscript : 객체 (1) 1. 객체의 이해 2. wmlbrowser 라이브러리 3. lang ...

Post on 21-Jan-2016

56 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

제 9 장 WMLScript : 객체 (1) 1. 객체의 이해 2. WMLBrowser 라이브러리 3. Lang 라이브러리 4. Console 객체 5. Dialogs 객체 6. WMLScript 예제. 1. 객체의 이해 WMLScript 는 스크립트의 다양한 기능을 켭슐화한 객체들을 제공 한다 . ‘ 미리 패키지화된’ 함수를 WMLScript 객체라고 한다 . WMLScript 객체. 2. WMLBrowser 라이브러리 - PowerPoint PPT Presentation

TRANSCRIPT

제 9 장 WMLScript : 객체 (1) 1

제 9 장

WMLScript : 객체 (1)

1. 객체의 이해

2. WMLBrowser 라이브러리

3. Lang 라이브러리

4. Console 객체

5. Dialogs 객체

6. WMLScript 예제

제 9 장 WMLScript : 객체 (1) 2

1. 객체의 이해

• WMLScript 는 스크립트의 다양한 기능을 켭슐화한 객체들을 제공

한다 .

• ‘ 미리 패키지화된’ 함수를 WMLScript 객체라고 한다 .

• WMLScript 객체

객 체 기 능

Lang문자열을 정수나 부동소수점 숫자로 바꾸거나 , 임의의 수를 발생시키거나 WMLScript 해석기와 관련된 다양한 상수값을 결정하는 기능을 포함

Float 부동소수점 관련 함수를 포함 String 문자열 관련 함수들의 집합 URL 절대 URL 과 상대 URL 과 관련한 함수들의 집합 WMLBrowser 스크립트와 브라우저와의 관계에 대한 함수들의 집합 Dialog 사용자와의 상호작용을 할 수 있는 함수들의 집합 Console 사용자에게 결과를 콘솔창에 보여주기 위한 함수들의 집합

제 9 장 WMLScript : 객체 (1) 3

2. WMLBrowser 라이브러리

• WMLBrowser 객체 메서드들은 WMLScript 프로그램과 WML 문서

간에 통신을 할 수 있도록 해준다 .

• WMLBrowser 객체의 메서드메서드 기 능

getCurrentCard 현재 사용하고 있는 WML 카드의 상대적인 URL 을 반환

getVar WML 데크에서 대입된 변수의 값을 반환

go WMLScript 에서 역할을 마친 후 원하는 URL 로 이동

newContent 모든 변수의 값을 지운다 .

prev 현재 카드로 오기 전 카드로 이동

refresh 브라우저 내용을 새로 고침

setVar 브라우저 변수에 값을 설정

제 9 장 WMLScript : 객체 (1) 4

• [ 예제 9-1] getVar(), setVar() 메서드 사용 예 ▶ ch9-1.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title=" 비밀번호 "> 6 <do type="accept" label="okey"> 7 <go href="ch9-1.wmls#passf()"> 8 <setvar name="id" value="sky"/> 9 </go> 10 </do> 11 <p align="center"> 12 변수 설정 </br> 13 아이디 : $(id) <br/> 14 비밀번호 : $(ps) <br/> 15 </p> 16 </card> 17 </wml>

제 9 장 WMLScript : 객체 (1) 5

▶ ch9-1.wmls 1 extern function passf() 2 { var n_id, n_pass="1234"; 3 n_id=WMLBrowser.getVar("id"); 4 Dialogs.alert("id:"+n_id); 5 WMLBrowser.setVar("ps", n_pass); 6 WMLBrowser.refresh(); 7 }

• 예제 9-1 의 실행 결과

제 9 장 WMLScript : 객체 (1) 6

• prev() 메서드

- 현재 카드로 이동해 오기 전에 사용한 WML 카드로 이동하는 기능을 수

행한다 .

• [ 예제 9-2] WMLBrowser.prev() 메서드 사용 예

▶ ch9-2.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title=" 비밀번호 확인 "> 6 <do type="accept" label="okey"> 7 <go href="ch9-2.wmls#prevf()"/> 8 </do>

제 9 장 WMLScript : 객체 (1) 7

9 <p align="center"> 10 확인 <br/> 11 비밀번호 :$(ps) </p> 12 </card> 13 </wml>

▶ ch9-2.wmls 1 extern function prevf() 2 { var n_id="sky", n_pass="1234"; 3 4 Dialogs.alert("id:"+n_id) ; 5 Dialogs.alert("password:"+n_pass) ; 6 WMLBrowser.prev() ; 7 }

제 9 장 WMLScript : 객체 (1) 8

• 예제 9-2 의 실행 결과

제 9 장 WMLScript : 객체 (1) 9

3. Lang 라이브러리• 데이터 타입 조작 기능 , 임의의 수를 발생시키는 기능 등• Lang 객체의 메서드

abort(msg) WMLScript 프로그램 실행을 중단하고 문자영 (msg) 를 화면에 표시하고 WML 브라우저로 돌아가는 메서드

abs(num) 수 (num) 의 절대값을 반환하는 메서드

characterSet() WMLScript 해석기를 지원하는 문자열 세트의 식별자를 반환하는 메서드

exit(value) WMLScript 해석기에서 빠져 나와 해석기가 수행되기 전에 수행되고 있던 WML 브라우저로 값을 반환하는 메서드

float() 부동소수점 연산을 지원하는지 여부를 알려주는 메서드

isFloat(str) 문자열 (str) 이 부동소수점 값으로 해석될 수 있는지 여부를 검사하는 메서드

isInt(str) 문자열 (str) 이 정수로 해석될 수 있는지 여부를 검사하는 메서드

max(num1, num2)

두 수 num1 과 num2 중에서 큰 수를 반환한다 .

maxInt() WMLScript 해석기가 처리할 수 있는 정수 중에서 가장 큰 값을 반환

제 9 장 WMLScript : 객체 (1) 10

min(num1, num2)

두 수 num1 과 num2 중에서 작은 수를 반환한다 .

minInt() WMLScript 해석기가 처리할 수 있는 정수 중에서 가장 작은 값을 반환

parseFloat(str) 문자열 (str) 을 부동소숫점 리터럴로 해석하려고 시도하는 메서드

parseInt(str) 문자열 (str) 을 십진수 정수로 해석하려고 시도하는 메서드

random(range) 0 에서 range 값 사이에 존재하는 임의의 수를 반환하는 메서드

seed(num) random() 메서드에 의해서 사용되는 시작값을 지정하는 메서드

제 9 장 WMLScript : 객체 (1) 11

• [ 예제 9-3] Lang.abort() 메서드 사용 예

▶ ch9-3.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3   "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5   <card id="main" title="WMLScript"> 6    <p align="center"> 7      <a href="ch9-3.wmls#cal_div(5,0)">calculate</a><br/> 8      result:$(number)<br/> 9    </p> 10 </card> 11 </wml>

제 9 장 WMLScript : 객체 (1) 12

▶ ch9-3.wmls 1 extern function cal_div(a,b) 2 { var c=a/b ; 3    if( b==0) Lang.abort("error : zero not divide"); 4    WMLBrowser.setVar("number",c); 5    WMLBrowser.refresh(); 6 }

제 9 장 WMLScript : 객체 (1) 13

• 예제 9-3 의 실행 결과

제 9 장 WMLScript : 객체 (1) 14

• abs() 메서드• [ 예제 9-4] Lang.abs() 메서드 사용 예

▶ ch9-4.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title="ABS()"> 6 <p align="center"> 7 <a href="ch9-4.wmls#absf(-15)">calculate</a><br/> 8 result<br/>-15 ▶ $(number)<br/> 9 </p> 10 </card> 11 </wml>

제 9 장 WMLScript : 객체 (1) 15

▶ ch9-4.wmls 1 extern function absf( n ) 2 { var r; 3 r=Lang.abs(n); 4 WMLBrowser.setVar( "number", r ); 5 WMLBrowser.refresh(); 6 }

• 예제 9-4 의 실행 결과

제 9 장 WMLScript : 객체 (1) 16

• exit() 메서드

• [ 예제 9-5] Lang.exit() 메서드 사용 예

▶ ch9-5.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title="EXIT()"> 6 <p align="center"> 7 <a href="ch9-5.wmls#f_exit()"> 확 인 </a><br/> 8 결과 : $(num)<br/> 9 $(msg1) 10 </p> 11 </card> 12 </wml>

제 9 장 WMLScript : 객체 (1) 17

▶ ch9-5.wmls 1 extern function f_exit( ) { 2 var a=0, msg2="Now Program Exit"; 3 while( a < 10 ){ 4 ++a; 5 if(a==5) 6 { WMLBrowser.setVar( "msg1", msg2 ); 7 Lang.exit(a); 8 } 9 WMLBrowser.setVar( "num", a ); 10 WMLBrowser.refresh(); 11 } 12 }

제 9 장 WMLScript : 객체 (1) 18

• 예제 9-5 의 실행 결과

제 9 장 WMLScript : 객체 (1) 19

• float 메서드

• [ 예제 9-6] Lang.float() 메서드 사용 예 ▶ ch9-6.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title="FLOAT() 지원여부 "> 6 <p align="center"> 7 <a href="ch9-6.wmls#f_float()"> 확 인 </a><br/> 8 O : $(msg1)<br/> 9 X : $(msg2) 10 </p> 11 </card> 12 </wml>

제 9 장 WMLScript : 객체 (1) 20

▶ ch9-6.wmls 1 extern function f_float() { 2 var bool ; 3 if(true==Lang.float()) 4 { bool="true"; 5 WMLBrowser.setVar( "msg1", bool ); 6 WMLBrowser.refresh(); 7 } 8 else 9 { bool="false"; 10 WMLBrowser.setVar( "msg2", bool ); 11 WMLBrowser.refresh(); 12 } 13 }

제 9 장 WMLScript : 객체 (1) 21

• 예제 9-6 의 실행 결과

제 9 장 WMLScript : 객체 (1) 22

• isFloat() 와 isInt() 메서드

•[ 예제 9-7] Lang.isfloat() 과 isInt() 메서드 사용 예 ▶ ch9-7.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title=" 변환여부 "> 6 <p align="center"> 7 <a href="ch9-7.wmls#float_int()"> 확 인 </a><br/> 8 float 3 ▶ $(m1)<br/> 9 float GooD ▶ $(m2)<br/> 10 int 2.17 ▶ $(m3)<br/> 11 int NO 2003 ▶ $(m4)<br/> 12 </p> 13 </card> 14 </wml>

제 9 장 WMLScript : 객체 (1) 23

▶ ch9-7.wmls 1 extern function float_int() { 2 var n1=Lang.isFloat("3"); 3 var n2=Lang.isFloat("GooD"); 4 var n3=Lang.isInt("2.17"); 5 var n4=Lang.isFloat("No 2003"); 6 7 WMLBrowser.setVar( "m1", n1 ); 8 WMLBrowser.setVar( "m2", n2 ); 9 WMLBrowser.setVar( "m3", n3 ); 10 WMLBrowser.setVar( "m4", n4 ); 11 WMLBrowser.refresh(); 12 }

제 9 장 WMLScript : 객체 (1) 24

• 예제 9-7 의 실행 결과

제 9 장 WMLScript : 객체 (1) 25

• max() 와 min() 메서드•[ 예제 9-8] Lang.max(), Lang.min() 메서드 사용 예

▶ ch9-8.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title=" 큰값 작은값 "> 6 <p align="center"> 7 <a href="ch9-8.wmls#maxmin(3,7)"> 찾기 </a> 8 <br/>max(3,7) : $(max) <br/> 9 min(3,7) : $(min) <br/> 10 </p> 11 </card> 12 </wml>

제 9 장 WMLScript : 객체 (1) 26

▶ ch9-8.wmls 1 extern function maxmin(a,b) 2 { var max, min ; 3 max=Lang.max(a,b); 4 min=Lang.min(a, b); 5 6 WMLBrowser.setVar( "max", max ); 7 WMLBrowser.setVar( "min", min ); 8 WMLBrowser.refresh(); 9 }

제 9 장 WMLScript : 객체 (1) 27

• 예제 9-8 의 실행 결과

제 9 장 WMLScript : 객체 (1) 28

• maxInt() 와 minInt() 메서드

• [ 예제 9-9] maxInt() 와 minInt( ) 메서드 사용 예

▶ ch9-9.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title=" 최대 , 최소 정수값 "> 6 <p align="center"> 7 <a href="ch9-9.wmls#maxmin()">find</a><br/> 8 최대 정수 : $(max) <br/> 9 최소 정수 : $(min) <br/> 10 </p> 11 </card> 12 </wml>

제 9 장 WMLScript : 객체 (1) 29

▶ ch9-9.wmls 1 extern function maxmin() 2 { var ma, mi; 3 ma=Lang.maxInt(); 4 mi=Lang.minInt(); 5 6 WMLBrowser.setVar( "max", ma ); 7 WMLBrowser.setVar( "min", mi ); 8 WMLBrowser.refresh(); 9 }

제 9 장 WMLScript : 객체 (1) 30

• 예제 9-9 의 실행 결과

제 9 장 WMLScript : 객체 (1) 31

• parseFloat() 와 parseInt() 메서드

•[ 예제 9-10] parseFloat() 와 parseInt() 의 사용 예 ▶ ch9-10.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title="parse()"> 6 <p align="center"> 7 <a href="ch9-10.wmls#parsefi()"> 보 기 </a><br/> 8 나 이 : $(n1) <br/> 9 키 : $(n2) <br/> 10 몸무게 : $(n3) <br/> 11 </p> 12 </card> 13 </wml>

제 9 장 WMLScript : 객체 (1) 32

▶ ch9-10.wmls 1 extern function parsefi() 2 { var n1, n2, n3; 3 n1=Lang.parseInt('20 age'); 4 n2=Lang.parseFloat('183.4 cm'); 5 n3=Lang.parseFloat('60 Kg'); 6 7 WMLBrowser.setVar( "n1", n1 ); 8 WMLBrowser.setVar( "n2", n2 ); 9 WMLBrowser.setVar( "n3", n3 ); 10 WMLBrowser.refresh(); 11 }

제 9 장 WMLScript : 객체 (1) 33

• 예제 9-10 의 실행 결과

제 9 장 WMLScript : 객체 (1) 34

• seed() 와 random() 메서드

•[ 예제 9-11] seed() 와 random() 메서드 사용 예

▶ ch9-11.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title="rand() &amp; seed()" > 6 <p align="center"> 7 1 과 20 사이의 숫자 생성 8 <a href="ch9-11.wmls#rand(6)">NUM</a><br/> 9 숫자 1 : $(num1) <br/> 10 숫자 2 : $(num2) <br/> 11 </p> 12 </card> 13 </wml>

제 9 장 WMLScript : 객체 (1) 35

▶ ch9-11.wmls 1 extern function rand(s) 2 { var n1,n2; 3 Lang.seed(s); 4 n1=Lang.random(19)+1; 5 n2=Lang.random(19.5)+1; 6 7 WMLBrowser.setVar( "num1", n1 ); 8 WMLBrowser.setVar( "num2", n2 ); 9 WMLBrowser.refresh(); 10 }

제 9 장 WMLScript : 객체 (1) 36

• 예제 9-11 의 실행 결과

제 9 장 WMLScript : 객체 (1) 37

4. Console 객체

• 사용자에게 결과를 콘솔에 보여주기 위한 객체이다 .

• Console 객체의 메서드

메서드 기 능

print() 사용자의 콘솔 창에 문자열을 출력 ( 줄바꿈 없음 )

println() 사용자의 콘솔 창에 문자열을 출력 ( 줄바꿈 있음 )

5. Dialogs 객체

• 사용자와 상호작용을 할 수 있는 메서드를 제공

제 9 장 WMLScript : 객체 (1) 38

메서드 기 능

alert() 사용자에게 경고 메시지를 표시

confirm() 사용자로부터 ‘예’ , ‘ 아니오’ 등의 응답을 요청한다 .

prompt() 사용자로부터 문자열을 얻어낸다 .

• [ 예제 9-12] Dialogs.alert() 메서드 사용 예 ▶ ch9-12.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="main" title="Alert"> 6 <onevent type="onenterforward"> 7 <refresh><setvar name="a" value="3"/> 8 <setvar name="b" value="0"/> 9 </refresh>

제 9 장 WMLScript : 객체 (1) 39

10 </onevent> 11 <p align="center">cal 을 선택하세요 <br/> 12 <a href="ch9-12.wmls#main()">cal</a> 13 <br/> 계산 결과 <br/> 14 $(a) + $(b)=$(add)<br/> $(a) / $(b)=$(divi)<br/> 15 </p> 16 </card> 17 </wml> ▶ ch9-12.wmls 1 extern function main( ) 2 { var a=3, b=0 ; 3 Dialogs.alert(“a :” + a + " b :" + b) ; 4 var add=add( a, b ) ; 5 Dialogs.alert("a+b="+add); 6 var divi=divide(a,b); 7 Dialogs.alert("a/b="+divi); 8 WMLBrowser.setVar("a", a);

제 9 장 WMLScript : 객체 (1) 40

9 WMLBrowser.setVar("b", b); 10 WMLBrowser.setVar("add", add); 11 WMLBrowser.setVar("divi", divi); 12 WMLBrowser.refresh(); 13 } 14 15 function add(a,b) 16 { Dialogs.alert("now function add() call"); 17 return(a+b); 18 } 19 20 function divide(a,b) 21 { Dialogs.alert("now function divide() call"); 22 if( b==0){ return("not divide"); } 23 else{ return(a/b); } 24 }

제 9 장 WMLScript : 객체 (1) 41

• 예제 9-12 의 실행결과

제 9 장 WMLScript : 객체 (1) 42

6. WMLScript 예제• 사칙연산 계산기

• [ 예제 9-13] 계산기 만들기

▶ ch9-13.wml 1 <?xml version="1.0"?> 2 <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 3 "http://wapforum.org/DTD/wml_1.1.xml" > 4 <wml> 5 <card id="input" newcontext="true"> 6 <do type="accept" label="cal"><go href="#select"/></do> 7 <p align="center"><b> 계산할 숫자 입력 </b> 8 첫번째 수 <br/> <input name="a" format="*N"/><br/> 9 두번째 수 <br/> <input name="b" format="*N"/><br/> 10 </p> 11 </card> 12

제 9 장 WMLScript : 객체 (1) 43

13 <card id="select"> 14 <do type="accept" label="cal"><go href="ch9-13.wmls#main()"/></do> 15 <p align="center"><b> operator select ? </b><br/> 16 <select name="op"> 17 <option value="+">add</option> 18 <option value="-">sub</option> 19 <option value="X">mul</option> 20 <option value="/">div</option> 21 </select> 22 </p> 23 </card> 24 25 <card id="view" title="result"> 26 <do type="accept" label="first"> 27 <go href="#input"/> </do> 28 <do type="option" label="other operator"> 29 <prev/> 30 </do> 31 <p align="center"><b> result</b><br/> 32 $(a)$(op)$(b)=<b>$(result)</b><br/> 33 </p> 34 </card> 35 </wml>

제 9 장 WMLScript : 객체 (1) 44

▶ ch9-13.wmls 1 extern function main() 2 { var a=WMLBrowser.getVar("a"); 3 var b=WMLBrowser.getVar("b"); 4 var op=WMLBrowser.getVar("op"); 5 6 a=Lang.parseInt(a); 7 b=Lang.parseInt(b); 8 if(op=="+"){ 9 WMLBrowser.setVar("result",a+b); 10 } else if(op=="-"){ 11 WMLBrowser.setVar("result",a-b); 12 } else if(op=="X"){ 13 WMLBrowser.setVar("result",a*b); 14 } else if(op=="/"){ 15 WMLBrowser.setVar("result",a/b); 16 } 17 WMLBrowser.go("ch9-13.wml#view"); 18 }

제 9 장 WMLScript : 객체 (1) 45

• 예제 9-13 의 실행 결과

top related