Download presentation
Presentation is loading. Please wait.
1
7부 WMLScript 다이나믹 폰페이지 만들기
7-1 WMLScipt 프로그래밍개요 7-2 WMLScipt 변수와 데이터형 7-3 WMLScipt 연산자와 제어문 7-4 WMLScipt 함수 7-5 WMLScipt 종합 예제 살펴보기 무선 인터넷 프로그래밍
2
7-1 WMLScript 프로그래밍 개요 무선 인터넷 프로그래밍
3
WMLScript 개요 WMLScript는 ECMAScript와 WAP에 기반을 둔 스크립트 언어로서 WML 문서에서 호출해서 사용. WMLScript는 WML에서 할 수 없는 기능들을 실현할 뿐만 아니라 서버와 통신을 통한 작업을 가능하게 함. WMLScript를 보통 Javascript 축소판이라고 부를 정도로 Javascript와 비슷한 형태를 취하고 있고 형식은 C와 유사함. 단 Javascript와는 다르게 문서 내에 스크립트를 포함할 수 없으므로 링크를 통해서 스크립트 문서를 불러와야 함. WMLScript는 *.wmls 확장자를 사용하고 컴파일을 거치지 않기 때문에 WML 문서와 같은 방법으로 문서를 작성해서 제작. 무선 인터넷 프로그래밍
4
WMLScript 개요 클라이언트 스크립트 언어 기능적인 부분은 JavaScript 비슷하고 문법적인 부분은 C와 유사
서버와의 통신 속도 개선 사용자 처리 부분 제공 단말기 제어 기능 제공 바이트코드의 형태로 메모리에 상주 무선 인터넷 프로그래밍
5
WML과 WMLScript <do type="accept">
WML 문서 안에 WMLScript를 입력할 수 없으므로 WMLScript로 작성한 문서를 <go> 태그를 이용하여 호출. ● WML 문서 <do type="accept"> <go href="WMLScript 파일 이름#함수이름" /> </do> 무선 인터넷 프로그래밍
6
WML과 WMLScript ● WMLScript 문서 extern function 함수이름 { 명령어 }
명령어 } -WML에서 호출된 함수를 실행. 무선 인터넷 프로그래밍
7
WML과 WMLScript [따라하기 예제 7-1-1]
[따라하기 예제 7-1-1] ‘Hello WMLScript!!’ 라는 문자열을 출력하게 해주는 스크립트 [hello.wml] [hello.wmls] 무선 인터넷 프로그래밍
8
WML과 WMLScript [UP4.0] 시뮬레이터 실행 무선 인터넷 프로그래밍
9
한 명령문의 끝은 항상 세미콜론(;)으로 종료 중괄호 사용하여 함수 구분 주석 기능 제공
WMLScript 기본 문법 대소문자 구분 한 명령문의 끝은 항상 세미콜론(;)으로 종료 중괄호 사용하여 함수 구분 주석 기능 제공 무선 인터넷 프로그래밍
10
데이터형 WMLScript 기본 문법 부동소수점형 문자열형 논리형 Invalid형 정수형 8진수,10진수,16진수로 표현
양수와 음수로 구분되며 32비트 8진수,10진수,16진수로 표현 부동소수점형 소수점형의 값 표현 32비트 부동 소수점 포맷을 가짐 문자열형 문자열 표현 큰 따옴표 이용 논리형 참과 거짓을 나타내는 데이터형 true와 false 두 개의 값만 존재(대소문자 구별하는 것에 유의) Invalid형 무효값 무선 인터넷 프로그래밍
11
WMLScript 기본 문법 연산자 산술연산자 관계연산자 복합연산자 대입연산자 논리연산자 일반적인 산술연산
같다, 크다, 작다를 나타내는 연산자 참(true)과 거짓(false)값을 가짐 복합연산자 대입연산자 논리연산자 AND(&&) OR(||) NOT(!) 무선 인터넷 프로그래밍
12
WMLScript 기본 문법 비트연산자 문자열연산자 조건연산자 Typeof연산자 Isvalid연산자 비트의 값 처리 연산자
비트논리연산자 쉬프트연산자 문자열연산자 문자열처리 연산자 조건연산자 항이 3개가 필요(삼항연산자) 조건식에 따라서 참과 거짓 나누어 처리 항1 ? 항2 : 항3 Typeof연산자 변수의 데이터형 알아내는 연산자 Isvalid연산자 값/식 유효/무효한지 체크하는 연산자 무선 인터넷 프로그래밍
13
WMLScript 기본 문법 제어문 If문 While문 조건에 따라서 분기되는 명령문 if(조건) { 명령문; }
조건이 만족할 때까지 반복하는 명령문 while(조건) 명령문 무선 인터넷 프로그래밍
14
WMLScript 기본 문법 For문 조건이 만족할 때까지 반복하는 명령문 for(초기식;조건식;증감식) { 명령문; }
명령문; } 무선 인터넷 프로그래밍
15
WMLScript 기본 문법 함수 지역함수 외부함수 라이브러리함수 같은 파일 내 선언되고 호출되는 함수
내부/외부에서 호출되는 함수 extern 으로 선언 use url 예약어를 사용하여 함수 공유 라이브러리함수 WMLScript 표준 라이브러리에 있는 함수 호출호출 방법 -> 라이브러리이름.함수명() 무선 인터넷 프로그래밍
16
7-2 WMLScript 변수와 데이터형 무선 인터넷 프로그래밍
17
변수 선언 형식 WMLScript에서 변수는 “var"라는 예약어를 사용하여 선언.
선언된 변수는 Invalid를 포함한 다섯 가지 데이터형 중에서 어느 것 이든 받아들일 수 있음. 함수 내에서 선언되어 사용하는 지역 변수만 존재하며 전역변수나 여러 접속에 사용되는 지속적인 변수는 존재하지 않음. 변수는 반드시 사용되기 전에 선언해야 합니다. var 변수명; var a; var x, y, z; var num = 5; var str = "WMLScript" 무선 인터넷 프로그래밍
18
변수 변수명 변수명에 대한 규칙 변수명은 문자, 숫자, 특수문자는 “_”만 사용한다. 숫자로 변수명을 시작할 수 없다.
빈 칸은 사용할 수 없다. 변수명은 예약어를 사용할 수 없다. 변수명은 대소문자를 구분한다. 무선환경에 적합하도록 짧게 작성하는 것이 좋다. 예> 사용 가능한 변수명 a num _my_home_ str123 사용 불가능한 변수명 123str my home if var 무선 인터넷 프로그래밍
19
문자열 "Hello WMLScript!!"을 변수에 대입하여 화면에 출력하게 만든 예제.
무선 인터넷 프로그래밍
20
데이터형 정수형(Integer) var 변수명 = 정수값; WMLScript에서 정수 값은 양수와 음수로 구분되며 32비트로
값의 범위는 ∼ 이고 값은 8진수, 10진수, 16진수로 표현할 수 있음. var 변수명 = 정수값; 예>> 10진수 : 1, -5, 45 8진수 : 011, 0204 16진수 : 0x10, 0x1e3, 0x3fff 무선 인터넷 프로그래밍
21
[변수값에 10진수, 8진수, 16진수가 어떻게 표현되는지 알아보는 예제]
데이터형 [변수값에 10진수, 8진수, 16진수가 어떻게 표현되는지 알아보는 예제] 무선 인터넷 프로그래밍
22
데이터형 무선 인터넷 프로그래밍
23
부동소수점형(Floating-point)
데이터형 부동소수점형(Floating-point) 32비트 소수점형의 값을 표현할 때 사용되는 데이터형 E-38 ∼ E+38 안에서 사용 가능. var 변수명 = 부동 소수 값; 예>> .0 0.0 15E3 10e-2 .22e+10 무선 인터넷 프로그래밍
24
데이터형 문자열형(String) var 변수명 = “문자열”; WMLScript에서 문자열은 큰 따옴표를 이용
문자열 내부에 특수한 문자를 포함할 수 있도록 이스케이프 문자열(escape sequences)을 제공 (p.352 참고) var 변수명 = “문자열”; 예>> "" "안녕하세요" 무선 인터넷 프로그래밍
25
[두 개의 문자열을 더한 변수를 화면에 출력하는 예제]
데이터형 [두 개의 문자열을 더한 변수를 화면에 출력하는 예제] 무선 인터넷 프로그래밍
26
var 변수명 = true; 또는 false;
데이터형 논리형(Boolean) 참과 거짓을 나타내는 데이터형 true와 false 두 개의 값만이 존재함 var 변수명 = true; 또는 false; 무선 인터넷 프로그래밍
27
데이터형 Invalid형 var 변수명 = Invalid형;
이 데이터형은 앞에서 배운 정수형, 부동소수점형, 문자열형, 논리형 어느 곳에도 속하지 않는 값을 가지며 무효값이라고도 함. 0으로 나누는 유효하지 않은 연산식의 결과에 사용됨. var 변수명 = Invalid형; 예>> 1/0 3/(2/0) 무선 인터넷 프로그래밍
28
데이터형 무선 인터넷 프로그래밍
29
7-3 WMLScript 연산자와 제어문 무선 인터넷 프로그래밍
30
연산자 산술 연산자 연산자 설명 예 + 덧셈 A+B - 뺄셈 A-B * 곱셈 A*B / 나눗셈 A/B Div 정수 나눗셈
A div B % 잉여 연산(나머지) A % B ++ 값이 1씩 증가 ++A, A++ -- 값이 1씩 감소 --A, A-- 무선 인터넷 프로그래밍
31
연산자 [산술 연산자를 이용한 예제] 무선 인터넷 프로그래밍
32
연산자 무선 인터넷 프로그래밍
33
연산자 관계 연산자 연산자 설명 예 == 같다 A == B != 같지 않다 A != B > 크다 A > B <
관계연산자는 같다, 크다, 작다 를 나타내는 연산자로 참(true)과 거짓(false) 값을 가짐 연산자 설명 예 == 같다 A == B != 같지 않다 A != B > 크다 A > B < 작다 A < B >= 크거나 같다 A >= B <= 작거나 같다 A <= B 무선 인터넷 프로그래밍
34
연산자 [ 관계 연산자 예제] 무선 인터넷 프로그래밍
35
연산자 무선 인터넷 프로그래밍
36
연산자 복합연산자는 대입연산자와 산술연산자 또는 비트논리연산자 등을 같이 사용하는 연산자 연산자 설명 예 = 대입 A = B
+= 덧셈 후 대입 A += B -= 뺄셈 후 대입 A -= B *= 곱셈 후 대입 A *= B /= 나눗셈 후 대입 A /= B %= 잉여 후 대입 A %= B 무선 인터넷 프로그래밍
37
연산자 [복합연산자 예제] 무선 인터넷 프로그래밍
38
연산자 무선 인터넷 프로그래밍
39
연산자 논리 연산자 연산자 설명 예 && AND A && B || OR A || B ! NOT !A
논리연산자는 True, False의 논리값을 연산자를 통해 참(true)과 거짓(false) 값으로 계산해주는 연산자임 연산자 설명 예 && AND A && B || OR A || B ! NOT !A 무선 인터넷 프로그래밍
40
연산자 [논리연산자 예제] 무선 인터넷 프로그래밍
41
연산자 무선 인터넷 프로그래밍
42
공백은 0으로 채우고 비트 단위로 오른쪽으로 이동
연산자 비트 연산자 비트의 값을 처리하는 비트논리연산자(&,|,^)와 비트를 지정된 방향으로 위치를 이동해주는 쉬프트 연산자( <<,>> )가 있음. 연산자 설명 예 & 비트 AND A & B | 비트 OR A | B ^ 비트 XOR A ^ B << 비트 단위로 왼쪽으로 B칸만큼 이동 A << B >> 비트 단위로 오른쪽으로 B칸만큼 이동 A >> B >>> 공백은 0으로 채우고 비트 단위로 오른쪽으로 이동 A >>> B 무선 인터넷 프로그래밍
43
각 2진수 값을 비트 논리 연산자와 쉬프트 연산자를 통해 계산하는 예제
‘1’의 2진수는 이고 ‘3’의 2진수는 임 각 2진수 값을 비트 논리 연산자와 쉬프트 연산자를 통해 계산하는 예제 무선 인터넷 프로그래밍
44
연산자 무선 인터넷 프로그래밍
45
연산자 문자열 연산자 ‘+’ 연산자를 사용해서 문자와 문자를 나란히 연결해주는 연산자 예) str1 = “Hello”;
str2 = “World”; str3 = str1 + str2; 무선 인터넷 프로그래밍
46
조건?값1:값2 조건이 참이면 값1을 거짓이면 값2를 대입
연산자 조건 연산자 조건연산자는 항이 3개가 필요하여 삼항 연산자라고도 함 조건?값1:값2 조건이 참이면 값1을 거짓이면 값2를 대입 무선 인터넷 프로그래밍
47
연산자 [조건 연산자를 이용한 예제] 무선 인터넷 프로그래밍
48
연산자 무선 인터넷 프로그래밍
49
데이터형 반환값 정수형 0 부동소수형 1 문자열형 2 논리형 3 Invalid 4
연산자 typeof 연산자 변수의 데이터형을 알아내는 연산자 데이터형 반환값 정수형 0 부동소수형 1 문자열형 2 논리형 3 Invalid 4 무선 인터넷 프로그래밍
50
값(식) 반환값 유효식 true 무효식 false
연산자 isvalid 연산자 주어진 값이나 식이 유효한지 무효한지를 체크하는 연산자. 값(식) 반환값 유효식 true 무효식 false 무선 인터넷 프로그래밍
51
[typeof 연산과 isValid 연산 예제]
연산자 [typeof 연산과 isValid 연산 예제] 무선 인터넷 프로그래밍
52
연산자 무선 인터넷 프로그래밍
53
제어문 if 문 if문은 조건을 주고 조건에 해당할 경우와 해당되지 않을 경우에 따라 분기되는 명령문임 if (조건식) {
명령1; } else { 명령2; 무선 인터넷 프로그래밍
54
extern function main() { if (5 == 2) { Dialogs.alert("Equal!!");
제어문 두 개의 숫자가 같은지 관계연산자를 통해 조건을 준 다음 같으면 "Equal!!", 틀리면 "Different!!" 글자가 출력되도록 만든 예제. extern function main() { if (5 == 2) { Dialogs.alert("Equal!!"); } else { Dialogs.alert("Different!!"); } } 무선 인터넷 프로그래밍
55
제어문 while문 while (조건식) { 명령; }
명령; } 무선 인터넷 프로그래밍
56
While문을 이용하여 1부터 10까지 더하는 예제. extern function main() { var num=1;
제어문 While문을 이용하여 1부터 10까지 더하는 예제. extern function main() { var num=1; var sum=0; while (num <=10) { sum += num; num++; } Dialogs.alert("While use -> Sum(1 - 10) : " + sum); } 무선 인터넷 프로그래밍
57
제어문 for문 for (초기값; 조건식; 증감식) { 명령; }
for문은 while 문과 같이 조건이 만족할 때까지 반복 실행해주는 제어문으로 조건에 증감식과 초기값을 설정할 수 있음. for (초기값; 조건식; 증감식) { 명령; } 무선 인터넷 프로그래밍
58
extern function main() { var sum=0; for (var i = 0; i <=10; i++) {
제어문 [1부터 10까지 더한 값을 출력해주는 예제] extern function main() { var sum=0; for (var i = 0; i <=10; i++) { sum += i; } Dialogs.alert("For use -> Sum(1 - 10) : " + sum); } 무선 인터넷 프로그래밍
59
[1부터 사용자가 입력한 값까지의 수를 더하여 출력하는 예제]
연습문제 [1부터 사용자가 입력한 값까지의 수를 더하여 출력하는 예제] 라이브러리 함수 사용(WMLBrowser.getVar(“변수”)) 라이브러리 함수 사용( Lang.parseInt(변수)) 무선 인터넷 프로그래밍
60
7-4 WMLScript 함수 무선 인터넷 프로그래밍
61
함수 선언 영역 function 함수명(인자) { 명령문 ...... return } 무선 인터넷 프로그래밍
62
return : 함수의 결과 값을 호출한 곳으로 전달. 필요 없을 경우 생략이 가능하며 빈 문자열이 리턴 됩니다.
함수 선언 영역 : 함수가 사용 가능한 영역을 지정. 영역에 아무것도 입력하지 않으면 현재 WMLScript 문서에서만 동작하고 ‘extern'을 입력하면 다른 WMLScript 문서에서도 호출이 가능 함수명 : 사용자가 임의로 지정 가능 인자 : 전달하기 위한 값을 설정 return : 함수의 결과 값을 호출한 곳으로 전달. 필요 없을 경우 생략이 가능하며 빈 문자열이 리턴 됩니다. 무선 인터넷 프로그래밍
63
<p>Function test1</p> <do type="accept">
함수 선언 [함수 사용 예제] Wml <wml> <card> <p>Function test1</p> <do type="accept"> <go href="7-4-1.wmls#main()" /> </do> </card> </wml> 무선 인터넷 프로그래밍
64
함수 선언 Wmls extern function main() { var sum = 100; var count = 5;
var avg; avg = test(sum, count); //두 변수값을 test() 함수로 넘깁니다. Console.println("******* Result *******"); Console.println("Average = " + avg); //test() 함수에서 반환받은 값을 출력합니다. } function test(sum, count) var avg; avg = sum / count; return avg; 무선 인터넷 프로그래밍
65
함수 호출 지역 함수(Local Function) 같은 파일 내에서 선언되고 호출되어 사용되는 함수
선언하기 전에 호출하여 사용할 수 있음 지역 함수로 사용할 경우 function 앞에 ‘extern'를 표시하지 않음 무선 인터넷 프로그래밍
66
함수 호출 extern function main() { var num = 10; var result;
result = sum(num); Console.println("******* Result *******"); Console.println("Sum(1 -> 10) : " + result); } function sum(num) //같은 문서에 있는 함수로 값을 할당하므로 ‘extern’을 표시하지 않아도 됩니다. var total=0; for(var i = 1; i <= num; i++) { total = total + i; } return total; 무선 인터넷 프로그래밍
67
함수 호출 외부 함수 외부 함수는 “extern"으로 선언되어 있으며 자신의 파일이 아닌 외부 파일에서도 호출하여 사용할 수 있음. 함수를 작성한 후 ”use url" 예약어를 사용하여 함수를 공유할 수 있음. 무선 인터넷 프로그래밍
68
extern function main() { var num = 10; var result;
함수 호출 Wmls use url totalsum_extern "file://c:/mobile/7b/7b4s/ wmls"; extern function main() { var num = 10; var result; result = totalsum_extern#sum(num); Console.println("******* Result *******"); Console.println("Sum(1 -> 10) : " + result); } 무선 인터넷 프로그래밍
69
extern function sum(num) //7-4-3.wml 문서에서 호출되 므로 ‘extern'을 꼭 표시해야 함 {
함수 호출 Wmls extern function sum(num) //7-4-3.wml 문서에서 호출되 므로 ‘extern'을 꼭 표시해야 함 { var total=0; for(var i = 1; i <= num; i++) { total = total + i; } return total; } 무선 인터넷 프로그래밍
70
라이브러리 함수 라이브러리 함수란 WMLScript에서 제공하는 함수로 의미를 담고 있기 때문에 사용자가 정의를 내릴 필요가 없이 사용이 가능함 WMLScript에서 제공하는 라이브러리 함수는 크게 7가지로 분류할 수 있으며 내장 함수 호출하는 방법은 “라이브러리 이름.함수명()”으로 사용. 무선 인터넷 프로그래밍
71
라이브러리 함수 Lang.abort(string) 프로그램 강제 종료 Lang.abs(number) 수의 절대값 표시
Lang.characterSet() WMLScript 1.1에서 지원하는 문자집합 표시 Lang.exit(anything) 프로그램 정상 종료 Lang.float() 부동소수점의 지원 여부 리턴 Lang.isFloat(string) 문자열이 Lang.parseFloat()에 의해 부동소수점 값으로 해석 여부 리턴 isInt(string) 문자열이 Lang.parseInt()에 의해 정수 값으로 해석 여부 리턴 Lang.max(num1, num2) 큰 값을 리턴 Lang.maxInt() WMLScript에서 지원하는 최대 정수값 리턴 Lang.min(num1, num2) 작은 값을 리턴 Lang.minInt() WMLScript에서 지원하는 최소 정수값 리턴 Lang.parseFloat(string) 문자열을 부동소수점값으로 리턴 Lang.parseInt(string) 문자열을 정수값으로 리턴 Lang.random(range) 0부터 range(정수) 사이의 임의의 값 리턴 Lang.seed(seed) 임의의 수 발생시 seed 값으로 시작값 초기화 무선 인터넷 프로그래밍
72
라이브러리 함수 extern function main() {
Console.println("** Lang Library Function **"); var num = Lang.abs(-10); Console.println("Lang.abs(-10) = " + num); num = Lang.characterSet(); Console.println("Lang.characterSet() = " + num); Console.println("Lang.float() = " + Lang.float()); Console.println("Lang.isFloat(\"123.45\") = " + Lang.isFloat("123.45")); Console.println("Lang.isFloat(\"5e+2\") = " + Lang.isFloat("5e+2")); Console.println("Lang.isFloat(false) = " + Lang.isFloat(false)); Console.println("Lang.max(10,5) = " + Lang.max(10,5)); Console.println("Lang.min(10,5) = " + Lang.min(10,5)); Console.println("Lang.maxInt() = " + Lang.maxInt()); Console.println("Lang.minInt() = " + Lang.minInt()); Console.println("Lang.parseFloat(\"123.45\") = " + Lang.parseFloat("123.45")); Console.println("Lang.parseInt(\"123\") = " + Lang.parseInt("123")); Console.println("Lang.random(10) = " + Lang.random(10)); } 무선 인터넷 프로그래밍
73
라이브러리 함수 무선 인터넷 프로그래밍
74
라이브러리 함수 Float 라이브러리 함수 실수에 관련된 함수. 무선 인터넷 프로그래밍
75
라이브러리 함수 Float.ceil(number) number 보다 작지 않은 최소정수값 리턴
Float.floor(number) number 보다 크지 않은 최대 정수값 리턴 Float.int(number) number의 소수점 아래에 있는 값을 무시하고 정수 부분만 리턴 Float.maxFloat() WMLScript에서 지원하는 최대 부동소수점 값 리턴, 항상 같은 값 리턴 Float.minFloat() WMLScript에서 지원하는 최소 부동소수점 값 리턴, 항상 같은 값 리턴 Float.pow(num1,num2) num1의 num2 지수승을 리턴 Float.round(number) number에 가장 가까운 정수값 리턴, number가 정수이면 그대로 리턴 Float.sqrt(number) number의 제곱근 리턴 무선 인터넷 프로그래밍
76
라이브러리 함수 extern function main() {
Console.println("<< Float Library Function >>"); Console.println("Float.ceil(13.3) = " + Float.ceil(13.3)); Console.println("Float.ceil(-13.3) = " + Float.ceil(-13.3)); Console.println("Float.floor(13.3) = " + Float.floor(13.3)); Console.println("Float.int(13.3) = " + Float.int(13.3)); Console.println("Float.maxFloat() = " + Float.maxFloat()); Console.println("Float.minFloat() = " + Float.minFloat()); Console.println("Float.pow(2,3) = " + Float.pow(2,3)); Console.println("Float.round(13.3) = " + Float.round(13.3)); Console.println("Float.round(-15.4) = " + Float.round(-15.4)); Console.print("Float.round(\"Hello\") = "); Console.println(Float.round("Hello")); Console.println("Float.sqrt(4) = " + Float.sqrt(4)); } 무선 인터넷 프로그래밍
77
라이브러리 함수 무선 인터넷 프로그래밍
78
라이브러리 함수 String 라이브러리 함수 문자열에 관련된 함수. 무선 인터넷 프로그래밍
79
라이브러리 함수 함수 설명 리턴값 Sting.charAt(string,index) 문자열에 해당 인덱스에 문자열, invalid 있는 문자열리턴 String.compare(str1, str2) 두 개의 문자열 비교( 정수값, invalid 같으면 0, str1이 작으면 -1, str1이 크면 1을 리턴) String.elementAt(str,index, separator) 문자열을 구별자(separator) 문자열, invalid 로 구분 했을 경우 해당 인 덱스에 있는 문자열 리턴 String.elements(str, separator) 문자열을 구별자로 구분 정수값, invalid 했을 경우 구분되어지는 개수 리턴 String.find(str1, str2) str1에 str2가 시작하는 정수값, invalid 인덱스 리턴 Sting.format(format, anything) 주어진 포맷 규칙에 문자열, invalid 따라 문자열 리턴 무선 인터넷 프로그래밍
80
라이브러리 함수 String.isEmpty(string) 문자열이 빈 문자열 true, false, 인지 체크 invalid
String.length(string) 문자열의 길이 반환 정수값, invalid String.toString(anything) WMLScript 값을 문자열, invalid 문자열로 반환 String.insertAt 문자열(str1)에 문자열, invalid (str1,str2,index,separator) 새로운문자열(str2)를 구별자를 기준으로 해당 인덱스에 삽입, 첫째 인덱스 값은 0부터 시작 String.removeAt 문자열(str1)에 구별자 문자열, invalid (str1,index, separator) 기준으로 해당 인덱스의 문자 삭제, 첫째 인덱스 값은 0부터 시작 무선 인터넷 프로그래밍
81
라이브러리 함수 String.replace(str1, str2, str3) 문자열(str1)에 기존 문자열, invalid
String.replaceAt 문자열(str1)에 새로운 문자열, invalid (str1,str2,index,separator) 문자열(str2)를 구별자를 기준으로 해당 인덱스에 교환, 첫째 인덱스 값은 0부터 시작 String.squeeze(str) 연속적인 공백문자를 문자열, invalid 하나의 빈칸으로 압축 String.subString(str, index, len) 문자열에서 인덱스에서 해당 문자열, invalid 길이만큼의 문자열 리턴 String.trim(string) 문자열 앞뒤의 공백문자 제거 문자열, invalid 무선 인터넷 프로그래밍
82
라이브러리 함수 URL 라이브러리 함수 URL 경로에 관련된 함수. 무선 인터넷 프로그래밍
83
라이브러리 함수 함수 설명 리턴값 URL.escapeString(string) 문자열안에 특수문자를 문자열, invalid
함수 설명 리턴값 URL.escapeString(string) 문자열안에 특수문자를 문자열, invalid 이스케이프 문자열로 대체 URL.getBase() WMLScript문서의 절대 문자열 URL 반환 URL.getFragment(url) url 뒤에 있는 부분 리턴 문자열, invalid URL.getHost(url) url의 호스트 이름 반화 문자열, invalid URL.getParameters(url) url에 사용된 매개변수 추출 문자열, invalid URL.getPath(url) url의 경로 리턴 문자열, invalid URL.getPort(url) url의 포트번호 리턴 문자열, invalid URL.getQuery(url) url의 질의 부분 리턴 문자열, invalid URL.getScheme(url) url의 스킴 부분 리턴 문자열, invalid URL.isValid(url) URL문법에 맞는지 체크 true, false, invalid URL.loadString(url,type) url에서 문자열 추출 문자열, 정수값, invalid URL.resolve(url,str) 상대적 URL을 절대적 문자열, invalid URL로 변환 URL.unescapeString(str) 문자열에 URL 문자열, invalid 이스케이프 취소 무선 인터넷 프로그래밍
84
라이브러리 함수 함수 설명 리턴값 value=WMLBrowser. 현 브라우저에 있는 문자열, invalid
함수 설명 리턴값 value=WMLBrowser. 현 브라우저에 있는 문자열, invalid getCurrentCard() 카드의 URL 반환 value=WMLBrowser. name이라는 이름은 문자열, invalid getVar(name) 갖는 브라우저 변수 값 반환 value=WMLBrowser.go(url) URL로 링크를 실행합니다. 문자열, invalid WMLBrowser.newContext() 브라우저 구문을 깨끗이 지움 WMLBrowser.prev() 이전 페이지로 이동합니다. WMLBrowser.refresh() 브라우저의 내용을 비웁니다. value=WMLBrowser. name 변수에 value 값을 true, false, setVar(name, value) 설정합니다. invalid 무선 인터넷 프로그래밍
85
extern function main() { WMLBrowser.refesh();
라이브러리 함수 extern function main() { WMLBrowser.refesh(); Console.println("WMLBrowser.setVar(\"name\",\"codman\")"):"+WMLBrowser.setVar("name","codman")); Console.println("WMLBrowser.getVar(\"name\"):"+WMLBrowser.getVar("name")); } 무선 인터넷 프로그래밍
86
WML 브라우저 라이브러리 함수를 이용하여 현재 작업 중인 card의 주소를 출력하고 지정된 페이지로 이동하게 해주는 예제.
extern function main() { Console.println("** WMLBrowser Library Function **"); Console.println(WMLBrowser.getCurrentCard()); Console.println("*********************************"); var urltest = "gotest.wml"; WMLBrowser.go(urltest); } 무선 인터넷 프로그래밍
87
라이브러리 함수 다이얼로그 라이브러리 함수 경고창, 컨펌창, 프롬프트 창에 관련된 다이얼로그 라이브러리 무선 인터넷 프로그래밍
88
라이브러리 함수 함수 ` 설명 리턴값 value=Dialogs. 사용자에게 경고 문자열, invalid
함수 ` 설명 리턴값 value=Dialogs. 사용자에게 경고 문자열, invalid alert(string) 메시지 표시 value=Dialogs. 사용자에게 yes나 true, false, confirm(str,yes,no) no 응답 요구 nvalid value=Dialogs. 사용자에게 문자열 문자열, invalid prompt(str, def) 입력 받음 무선 인터넷 프로그래밍
89
extern function main() { var a="man"; if (a=="woman")
라이브러리 함수 Dialogs.alert() 함수를 사용해서 문자열을 화면에 출력하는 예제. 팝업 페이지이므로 [OK] 메뉴를 클릭하면 이전 페이지로 이동. extern function main() { var a="man"; if (a=="woman") Dialogs.alert("man"); else Dialogs.alert("woman"); } 무선 인터넷 프로그래밍
90
Dialogs.confirm() 함수에 If 문을 사용해서 조건 선택에 따라 다른 메시지가 출력되도록 만든 예제.
라이브러리 함수 Dialogs.confirm() 함수에 If 문을 사용해서 조건 선택에 따라 다른 메시지가 출력되도록 만든 예제. extern function main() { if (Dialogs.confirm("Will you pay by charge?","OK","NO")) Dialogs.alert("Come into action of settlement program"); else Dialogs.alert("cancellation of program"); } 무선 인터넷 프로그래밍
91
extern function main() { var tel = "02-"; var msg ;
라이브러리 함수 extern function main() { var tel = "02-"; var msg ; msg = Dialogs.prompt("Are you Telephone number ?", tel); Dialogs.alert("Telephone number is "+ msg); } 무선 인터넷 프로그래밍
92
라이브러리 함수 무선 인터넷 프로그래밍
93
라이브러리 함수 Console 라이브러리 함수 문자열을 출력해주는 대표적인 함수 무선 인터넷 프로그래밍
94
value=Console. 정보창에 문자열 출력 true, false print(string)
라이브러리 함수 함수 설명 리턴값 value=Console. 정보창에 문자열 출력 true, false print(string) value=Console. 정보창에 문자열 출력 println(string) 하고 줄 바꿈 true, false 무선 인터넷 프로그래밍
95
extern function main() { Console.println("[Yesterday]");
라이브러리 함수 extern function main() { Console.println("[Yesterday]"); Console.print("Yesterday "); Console.print("all my troubles seemed so far away"); } 무선 인터넷 프로그래밍
96
7-5 WMLScript 종합 예제 살펴보기 무선 인터넷 프로그래밍
97
가위바위보 게임 만들기 WMLScript를 사용하여 컴퓨터와 함께 즐길 수 있는 가위바위보 게임을 만들어 보겠습니다. 이 게임은 WML 문서와 WMLScript 문서로 구성됩니다. WML 문서인 fungame.wml에서 fungame.wmls에 있는 fungame()이라는 함수를 호출하여 사용합니다. fungame() 함수는 사용자가 입력한 정보와 컴퓨터에서 랜덤하게 선택된 정보를 비교하여 이겼는지 졌는지 결과를 알려줍니다. 무선 인터넷 프로그래밍
98
가위바위보 게임 만들기 게임 시작 (fungame.wml) 무선 인터넷 프로그래밍
99
가위바위보 게임 만들기 사용자가 값을 입력(fungame.wml) 무선 인터넷 프로그래밍
100
가위바위보 게임 만들기 컴퓨터의 랜덤값과 사용자가 입력한 값을 비교하여 결과 출력(fungame.wmls)
무선 인터넷 프로그래밍
101
가위바위보 게임 만들기 결과 후 다시 게임을 실행할지 묻는 페이지로 이동(fungame.wml) 무선 인터넷 프로그래밍
102
가위바위보 게임 만들기 이 게임은 게임 내용을 보여주는 fungame.wml 파일과 게임 계산에 관련된 fungame.wmls 파일로 구성되어 있습니다. fungame.wml은 3개의 card로 이루어져 있습니다. card1에서는 초기화면을 보여준 후 게임을 진행하기 위하여 card2를 호출합니다. card2에서 게임의 결과를 알려주는 함수를 스크립터에서 호출합니다.(15번째 줄) fungame.wmls 파일 안에 정의 되어 있는 fungame() 함수를 호출하여 입력받은 내용을 함수로 넘겨줍니다.(16번째 줄) card3에는 게임 결과를 출력한 후 재시도 할 수 있도록 보여주는 부분으로 스크립터 파일에 있는 fungame()에서 호출됩니다. fungame.wmls fungame.wml에서 불러온 fungame() 함수는 3번째 줄에서 보는 것과 같이 WMLBrowser.getVar() 라이 브러리 함수를 사용하여 입력한 내용을 브라우저로부터 받아옵니다. 그리고 5, 6번째와 같이 컴퓨터로부 터 1과 3사이에서 랜덤한 수를 받아옵니다. 브라우저로부터 받아온 값은 문자열이기 때문에Lang.parseInt()를 사용하여 정수값으로 변환 한 뒤 usernum과 compnum을 비교합니다. 두 개의 값 을 비교할 준비를 다 마친 후에는 if문을 사용하여 비교한 결과값을 Dialogs.alert()를 사용하여 화면에 출 력합니다. 게임이 끝난 후에는 WMLBrowser.go()를 사용하여 fungame.wml로 되돌아 갑니다. 무선 인터넷 프로그래밍
103
회원가입 정보 검사 회원가입할 때 아이디나 패스워드 입력 조건 등 다양한 제약 사항을 가지고 있습니다. 이러한 제약 사항을 WMLScript를 이용해서 간단하게 검사할 수 있습니다. 회원 가입 시 다음과 같은 제약 사항이 있습니다. 아이디는 5 ~ 10 글자이어야 한다. 패스워드는 재입력 시 동일해야만 한다. 패스워드 길이는 5 ~ 10 글자이어야 한다. 주민번호 형식은 “ ” 이어야 한다. 핸드폰번호 형식은 “ ” 이어야 한다. 무선 인터넷 프로그래밍
104
회원가입 정보 검사 <가입절차> 무선 인터넷 프로그래밍
105
회원가입 정보 검사 무선 인터넷 프로그래밍
106
회원가입 정보 검사 <에러 메시지> -아이디를 잘못 입력한 경우 -패스워드를 잘못 입력한 경우
-아이디를 잘못 입력한 경우 -패스워드를 잘못 입력한 경우 무선 인터넷 프로그래밍
107
회원가입 정보 검사 회원가입에 적용되는 일반적인 규칙을 검사해주는 예제입니다. 이 예제는 5개의 카드로 구성되어 있는 register.wml과 아이디의 유효성을 체크해 주는 IDchk()함수와 패스워드의 유효성을 체크해 주는 passwdchk() 함수로 구성되어 있는 register.wmls 두 개의 문서로 구성되어 있습니다. 무선 인터넷 프로그래밍
108
회원가입 정보 검사 ● register.wml
register.wml은 5개의 card로 이루어져 있습니다. card1에서는 초기화면을 보여준 후 회원가입을 진행하기 위하여 card2를 호출합니다. card2에서는 아이디를 입력하는 부분으로 아이디가 유효한 아이디인지를 체크하기 위하여 IDchk() 함수를 스크립트 파일에서 호출한 다음 입력받은 아이디 값을 넘겨줍니다. card3 부분에서는 패스워드를 입력하는 부분으로 유효한 패스워드인지 재입력 시 동일한지를 체크하기 위하여 passwdchk() 함수를 호출합니다. 첫 번째 패스워드와 재입력한 두 번째 패스워드를 넘겨줍니다. card4는 주민번호와 핸드폰번호를 입력하는 card로 <input> 태그를 사용하여 입력 형태를 정해줍니다. 그리고 card5를 호출합니다. card5는 가입이 완료되었음을 사용자에게 알려주는 부분입니다. 무선 인터넷 프로그래밍
109
회원가입 정보 검사 ● register.wmls
register.wmls 파일에는 두 개의 함수가 있습니다. 아이디의 유효성을 체크해 주는 IDchk()함수와 패스워드의 유효성을 체크해 주는 passwdchk() 함수가 있습니다. IDchk() 함수는 브라우저로부터 ID의 값을 가져온(6번째줄) 다음 String.length() 라이브러리 함수를 사용하여 ID의 길이를 구합니다. 10번째 줄에는 if문을 사용하여 ID의 길이가 5보다 작거나 10보다 큰 경우는 사용할 수 없는 아이디이므로 경고 메시지를 브라우저에 전달하고 그렇지 않으면 다음 단계로 넘어 갈 수 있도록 card3을 호출합니다. passwdchk() 함수는 패스워드의 길이를 체크하는 부분과 재입력한 패스워드가 동일한지 체크하는 두 부분으로 구성되어 있습니다. 길이 체크하는 부분은 아이디의 길이 체크 부분과 동일합니다. 첫 번째 입력한 패스워드와 재입력한 패스워드가 동일한지 체크하기 위해서 String.compare() 라이브러리 함수를 사용합니다. 유효한 패스워드인 경우에는 card4를 호출하여 register.wml 파일로 돌아갑니다. 무선 인터넷 프로그래밍
110
연습문제 ● 만들어 보세요! 1.글상자에 점수를 입력하면 A,B,C,D,F 학점으로 표시해주는 스크립트를 만들어 보세요.
[TIP] IF ELSE 문을 이용해서 입력값에 따라 학점을 출력하게 만듭니다. 무선 인터넷 프로그래밍
111
연습문제 2.비만을 체크해주는 스크립트를 만들어 보세요.
[TIP] 비만도 측정 공식 : (신장-100)×0.9입니다. 결과값이 몸무게보다 작으면 비만입니다. 무선 인터넷 프로그래밍
Similar presentations