들어가며 ... 4 감사의 글 ... 10 지은이 소개 ... 11 1부 액션스크립트 준비 코스 1장 액션스크립트의 첫걸음 1.1 액션스크립트로 할 수 있는 일 ... 24 1.2 액션스크립트의 개요 ... 27 1.2.1 프로그램은 어떻게 만들어지는가? ... 27 1.2.2 액션스크립트의 특성 ... 28 1.2.3 액션스크립트의 역사 ... 29 1.3 액션스크립트 3.0 마이그레이션 가이드 ... 31 1.3.1 이전 버전 호환성 ... 31 1.3.2 새로 도입된 요소 ... 32 1.3.3 코드 레벨에서의 변화 ... 34 1.4 액션스크립트 학습 가이드 ... 36 1.4.1 액션스크립트 온라인 도움말 ... 37 2장 액션스크립트 프로그래밍의 기본 2.1 액션스크립트 개발 환경 구축 ... 40 2.1.1 개발툴 설치 ... 40 2.1.2 개발툴 사용법 ... 42 2.2 액션스크립트 드로잉의 기본 ... 48 2.2.1 액션스크립트 드로잉 개요 ... 48 2.2.2 기본 도형 그리기 ... 49 2.2.3 직선과 삼각형 그리기 ... 52 2.3 액션스크립트 실행 환경에 대한 이해 ... 56 2.3.1 애플리케이션 배포 시 고려사항 ... 56 2.3.2 애플리케이션 배포 방법 ... 59 2부 액션스크립트 기본기 3장 액션스크립트의 문법 3.1 액션스크립트 코드에 익숙해지기 ... 68 3.1.1 예약어 ... 68 3.1.2 액션스크립트 프로그램 언어 요소 ... 72 3.2 액션스크립트의 코드 속으로 ... 74 3.2.1 문장과 코드 블록 ... 74 3.2.2 값의 표현 ... 78 3.3 변수와 데이터 타입 ... 78 3.3.1 변수 작성의 기본 ... 79 3.3.2 변수의 종류 ... 82 3.4 함수 ... 87 3.4.1 함수 만들기 ... 88 3.4.2 생성자와 일반 함수 ... 90 3.5 액션스크립트 클래스 만들기 ... 93 3.5.1 클래스 작성 방법 ... 93 3.5.2 클래스의 사용(인스턴스화) ... 101 3.5.3 내부 클래스 ... 105 4장 연산자와 데이터 처리 4.1 액션스크립트 연산자 ... 110 4.1.1 산술 연산자 ... 110 4.1.2 논리 연산자 ... 117 4.1.3 비교 연산자 ... 120 4.1.4 할당 연산자 ... 125 4.1.5 문자열 연산자 ... 128 4.1.6 프라이머리 연산자 ... 130 4.1.7 기타 연산자 ... 132 4.2 비트와 이진 연산 ... 133 4.2.1 비트와 바이트 ... 133 4.2.2 컴퓨터의 데이터 표현 ... 134 4.2.3 이진 연산 ... 140 4.3 연산자 적용 규칙과 데이터 타입 변환 ... 144 4.3.1 연산자 적용 시 고려사항 ... 144 4.3.2 데이터 타입 변환 ... 146 4.3.3 데이터 타입 관련 연산자 ... 152 4.4 문자열 처리 ... 156 4.4.1 String 클래스 ... 156 4.4.2 문자열 검색 ... 164 4.5 시간과 수학 연산 ... 172 4.5.1 Date 클래스와 시간 연산 ... 172 4.5.2 Math 클래스와 수학 연산 ... 177 4.5.3 시간과 숫자 포맷팅 ... 181 5장 알고리즘과 데이터 구조 5.1 프로그램 처리 흐름의 제어 ... 188 5.1.1 조건 ... 188 5.1.2 반복 ... 201 5.1.3 분기와 기타 로직 ... 210 5.2 배열 ... 214 5.2.1 배열의 기본 ... 214 5.2.2 배열 다루기 ... 218 5.2.3 다차원 배열과 벡터 ... 222 5.3 알고리즘의 기본 패턴 ... 224 5.3.1 Boolean 플래그 패턴 ... 224 5.3.2 순차 탐색 패턴 ... 227 5.3.3 임시 변수 활용 패턴 ... 231 5.3.4 재귀 패턴 ... 235 5.4 XML데이터 구조 ... 238 5.4.1 XML의 개요 ... 239 5.4.2 E4X를 이용한 XML 다루기 ... 241 3부 액션스크립트 핵심 6장 객체 지향 프로그래밍의 정석 6.1 액션스크립트의 객체 지향적 특성 ... 252 6.1.1 클래스 ... 252 6.1.2 클래스의 상속과 메소드 오버라이딩 ... 264 6.1.3 접근제한자 ... 268 6.1.4 인터페이스 ... 273 6.1.5 상속과 인터페이스의 차이점 ... 279 6.1.6 에러 처리 ... 281 6.2 클래스 관계를 보는 방법 ... 288 6.2.1 액션스크립트 랭귀지 레퍼런스(API 문서) ... 288 6.2.2 클래스의 관계와 관계 연산자 ... 291 6.3 액션스크립트 이벤트 ... 296 6.3.1 이벤트의 개요 ... 296 6.3.2 이벤트의 구현 방법 ... 301 6.3.3 Event 클래스의 이해 ... 304 6.3.4 액션스크립트 이벤트의 처리 흐름 ... 316 6.3.5 애니메이션을 위한 이벤트 처리 ... 321 6.4 커스텀 이벤트 ... 327 6.4.1 커스텀 이벤트의 개요 ... 327 6.4.2 커스텀 이벤트 적용 방법 ... 329 7장 디스플레이 리스트 7.1 디스플레이 리스트 아키텍처 ... 338 7.1.1 디스플레이 리스트의 개요 ... 338 7.1.2 디스플레이 리스트의 클래스 구성 ... 341 7.1.3 디스플레이 리스트를 이용한 화면 구성 ... 342 7.2 디스플레이 리스트 API ... 342 7.2.1 SWF 화면 제어 ... 343 7.2.2 디스플레이 오브젝트 화면 제어 ... 349 7.2.3 비트맵 캐싱 ... 362 7.2.4 디스플레이 오브젝트 컨테이너의 객체 관리 ... 366 7.3 DisplayObject 클래스 계열 ... 370 7.3.1 플래시 내부 객체 표현을 위한 클래스 ... 371 7.3.2 시각적 요소 표현을 위한 클래스 ... 372 7.3.3 유저 인터랙션을 위한 클래스 ... 378 7.4 DisplayObjectContainer 클래스 계열 ... 385 7.4.1 Loader 클래스를 이용한 이미지 로딩 ... 385 7.4.2 Sprite 클래스 ... 392 7.4.3 Stage 클래스 ... 397 7.4.4 TextLine 클래스 ... 400 8장 유저 인터랙션 8.1 마우스 인터랙션 ... 412 8.1.1 마우스 이벤트 ... 412 8.1.2 마우스 클릭과 위치 감지 ... 415 8.1.3 마우스 움직임 ... 418 8.1.4 마우스 커서 관리 ... 426 8.1.5 드래그앤드롭 ... 429 8.2 키보드 인터랙션 ... 437 8.2.1 키보드 입력 ... 437 8.2.2 포커스 이동 ... 442 8.3 텍스트 인터랙션 ... 446 8.3.1 텍스트의 표현 ... 447 8.3.2 텍스트 입력 인터랙션 ... 459 8.3.3 텍스트 포맷팅 ... 467 8.3.4 폰트 설정 ... 474 8.3.5 텍스트 이벤트 ... 481 8.3.6 텍스트 입력폼 ... 488 8.4 버튼과 UI 컨트롤 인터랙션 ... 496 8.4.1 SimpleButton 클래스 ... 496 8.4.2 버튼 인터랙션의 응용 ... 501 8.4.3 복합 UI 컨트롤 인터랙션 ... 517 9장 그래픽 드로잉 테크닉 9.1 Geometry 패키지 ... 546 9.1.1 Point 클래스 ... 546 9.1.2 Rectangle 클래스 ... 556 9.1.3 Matrix 클래스 ... 567 9.1.4 Transform 클래스 ... 580 9.2 Graphics 드로잉 ... 588 9.2.1 Graphics 드로잉 API ... 588 9.2.2 그라데이션 ... 605 9.3 비트맵이미지 처리 ... 617 9.3.1 Bitmap과 BitmapData 클래스 ... 617 9.3.2 비트맵데이터의 비트맵 제어 ... 626 9.3.3 비트맵데이터의 드로잉, 변환 함수 ... 648 9.3.4 비트맵데이터 효과 ... 665 9.4 필터와 마스크 ... 696 9.4.1 마스크 효과 ... 696 9.4.2 필터의 기본 ... 704 9.4.3 고급 액션스크립트 필터 ... 718 4부 액션스크립트 응용 10장 액션스크립트 코드 애니메이션 10.1 코드 애니메이션의 기초 ... 742 10.1.1 코드 애니메이션의 원리 ... 742 10.1.2 삼각함수와 좌표 연산 ... 750 10.2 속도의 제어 ... 760 10.2.1 속도의 종류 ... 760 10.2.2 이징을 이용한 속도의 조절 ... 773 10.2.3 스프링을 이용한 탄성 운동 ... 782 10.3 삼각함수 응용 모션 ... 793 10.3.1 벡터 ... 793 10.3.2 회전 모션 ... 801 10.3.3 궤적 ... 811 10.4 충돌과 경계면 감지 ... 824 10.4.1 바운싱 ... 825 10.4.2 충돌 검사 ... 830 10.4.3 충돌 처리 ... 839 10.4.4 경사면 충돌 ... 852 11장 플래시 3D 그래픽 11.1 플래시 3D 개요 ... 866 11.1.1 플래시 플레이어 10의 3D API ... 866 11.1.2 xyz 좌표계 ... 871 11.1.3 PerspectiveProjection을 이용한 원근투영 ... 877 11.1.4 3D 회전 효과 ... 884 11.1.5 z축 정렬 ... 899 11.2 3D 변환 ... 906 11.2.1 Matrix3D와 행렬 연산 ... 906 11.2.2 3D 그래픽 인터랙션 ... 921 11.2.3 Matrix3D 변환 응용 모션 ... 933 11.3 3D 벡터 그래픽 ... 952 11.3.1 drawPath() 함수 ... 953 11.3.2 drawTriangles 함수 ... 965 11.3.3 텍스처와 UV 매핑 ... 974 11.3.4 Triangles 3D 모델링 ... 991 11.4 3D 코드 애니메이션 ... 1007 11.4.1 z축 가속 ... 1007 11.4.2 3D 경계면 감지 ... 1016 11.4.3 3D 바운스, 이징, 스프링 ... 1025 12장 플래시 플레이어와 서버 인터랙션 12.1 플래시 플레이어 인터랙션 ... 1038 12.1.1 플래시 플레이어 환경 설정 ... 1038 12.1.2 웹캠 제어 ... 1045 12.1.3 마이크 제어 ... 1055 12.2 로컬 서버 커뮤니케이션 ... 1060 12.2.1 파일 프로세싱 ... 1060 12.2.2 클라이언트 커뮤니케이션 ... 1083 12.2.3 플래시 플레이어 보안 ... 1094 12.2.4 XML 서버 데이터&오픈 API 연동 ... 1121 12.2.5 소켓 서비스 연동 ... 1131 찾아보기 ... 1145 부록 CD 소개 ... 1157