450 likes | 610 Views
제 9 장 WMLScript : 객체 (1) 1. 객체의 이해 2. WMLBrowser 라이브러리 3. Lang 라이브러리 4. Console 객체 5. Dialogs 객체 6. WMLScript 예제. 1. 객체의 이해 WMLScript 는 스크립트의 다양한 기능을 켭슐화한 객체들을 제공 한다 . ‘ 미리 패키지화된’ 함수를 WMLScript 객체라고 한다 . WMLScript 객체. 2. WMLBrowser 라이브러리
E N D
제 9 장 WMLScript : 객체 (1) 1. 객체의 이해 2. WMLBrowser 라이브러리 3. Lang 라이브러리 4. Console 객체 5. Dialogs 객체 6. WMLScript 예제 제 9 장 WMLScript : 객체 (1)
1. 객체의 이해 • WMLScript는 스크립트의 다양한 기능을 켭슐화한 객체들을 제공 • 한다. • ‘미리 패키지화된’ 함수를 WMLScript 객체라고 한다. • WMLScript 객체 제 9 장 WMLScript : 객체 (1)
2. WMLBrowser 라이브러리 • WMLBrowser 객체 메서드들은 WMLScript 프로그램과 WML 문서 • 간에 통신을 할 수 있도록 해준다. • WMLBrowser 객체의 메서드 제 9 장 WMLScript : 객체 (1)
[예제 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)
▶ 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)
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)
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)
예제 9-2의 실행 결과 제 9 장 WMLScript : 객체 (1)
3. Lang 라이브러리 • 데이터 타입 조작 기능, 임의의 수를 발생시키는 기능 등 • Lang 객체의 메서드 제 9 장 WMLScript : 객체 (1)
[예제 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)
▶ 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)
예제 9-3의 실행 결과 제 9 장 WMLScript : 객체 (1)
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)
▶ 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)
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)
▶ 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)
예제 9-5의 실행 결과 제 9 장 WMLScript : 객체 (1)
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)
▶ 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)
예제 9-6의 실행 결과 제 9 장 WMLScript : 객체 (1)
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)
▶ 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)
예제 9-7의 실행 결과 제 9 장 WMLScript : 객체 (1)
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)
▶ 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)
예제 9-8의 실행 결과 제 9 장 WMLScript : 객체 (1)
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)
▶ 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)
예제 9-9의 실행 결과 제 9 장 WMLScript : 객체 (1)
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)
▶ 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)
예제 9-10의 실행 결과 제 9 장 WMLScript : 객체 (1)
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() & 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)
▶ 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)
예제 9-11의 실행 결과 제 9 장 WMLScript : 객체 (1)
4. Console 객체 • 사용자에게 결과를 콘솔에 보여주기 위한 객체이다. • Console 객체의 메서드 • 5. Dialogs 객체 • 사용자와 상호작용을 할 수 있는 메서드를 제공 제 9 장 WMLScript : 객체 (1)
[예제 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)
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)
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)
예제 9-12의 실행결과 제 9 장 WMLScript : 객체 (1)
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)
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)
▶ 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)
예제 9-13의 실행 결과 제 9 장 WMLScript : 객체 (1)