language:flash:basic2
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| language:flash:basic2 [2014/02/14 10:54] – [마우스를 바라보는 오브젝트] kieuns | language:flash:basic2 [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== 그냥 메모 ====== | ||
| + | |||
| + | 오브젝트 선택 후 더블클릭하면 선택된 오브젝트의 타임라인이 표시된다. | ||
| + | |||
| + | * stage : 라는 변수가 있다. | ||
| + | * stage.stageWidth, | ||
| + | * 디버깅함수 : trace() | ||
| + | | ||
| + | ===== 단축키 ===== | ||
| + | |||
| + | | F1 | 도움말 | | ||
| + | | Shift+f2 | ScenePanel | | ||
| + | | f9 | ActionScript Panel | | ||
| + | | ctrl + enter | run(실행) | | ||
| + | | Ctrl+B | (이미지를) Shape로 변경 | | ||
| + | |||
| + | ===== AC3 문법 ===== | ||
| + | |||
| + | 변수 | ||
| + | |||
| + | <code actionscript3> | ||
| + | // var < | ||
| + | var max:uint = 5; | ||
| + | </ | ||
| + | |||
| + | 객체생성 | ||
| + | |||
| + | <code actionscript3> | ||
| + | var rc: | ||
| + | </ | ||
| + | |||
| + | 함수 | ||
| + | |||
| + | <code actionscript3> | ||
| + | // function < | ||
| + | function openHandler(event: | ||
| + | { | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 형 변환 | ||
| + | |||
| + | <code actionscript3> | ||
| + | var mc: | ||
| + | </ | ||
| + | |||
| + | 사전 정의된 클래스에 새로운 속성 추가 | ||
| + | |||
| + | <code actionscript3> | ||
| + | for( var i:uint = 0; i < link.length; | ||
| + | { | ||
| + | var mc: | ||
| + | mc.num = i; | ||
| + | // num 이라는 속성이 자동으로 추가 | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== 이벤트 함수 추가 ===== | ||
| + | |||
| + | <code actionscript3> | ||
| + | //< | ||
| + | // ObjectName : openBtn | ||
| + | // event : MouseEvent.CLICK | ||
| + | openBtn.addEventListener(MouseEvent.CLICK, | ||
| + | |||
| + | function openBox(event: | ||
| + | { | ||
| + | // do something | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 일반 이벤트로 받는 경우도 있으니, 실행중 에러가 뜨니 바로 알 수 있지만, 이벤트 종류에 따라 | ||
| + | 함수 형식을 확인하고 작성. | ||
| + | |||
| + | <code actionscript3> | ||
| + | // 어디선가 등록 된다고 하면, | ||
| + | this.addEventListener(Event.ENTER_FRAME, | ||
| + | |||
| + | function openHandler(event: | ||
| + | { | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== DisplayObject ===== | ||
| + | |||
| + | * x/y/z 좌표 있고, uint 타입(? | ||
| + | * .width, .height : 픽셀단위 크기 | ||
| + | * .scaleX, .scaleY : %%%%%단위의 확대 비율. (-)를 사용하면 반전된다. | ||
| + | * .alpha : 알파 | ||
| + | |||
| + | 여기 속성들은 Tween 클래스 사용할 때, 속성 파라미터로 사용한다. " | ||
| + | | ||
| + | ==== scale9Grid ==== | ||
| + | | ||
| + | **.scale9Grid** 는 사각형 (Rectangle) 타입으로 확대/ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <code actionscript3> | ||
| + | var grid: | ||
| + | box1.scale9Grid = grid; | ||
| + | box1.width = 300; | ||
| + | </ | ||
| + | |||
| + | * 이미지에도 적용 가능 : 이미지를 shape로 변경 후 (Ctrl+B) 9개의 영역으로 나누면 적용 가능. | ||
| + | |||
| + | ==== 회전 ==== | ||
| + | |||
| + | * rotationX, rotationY, rotationZ | ||
| + | * 일반 " | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== DisplayObject, | ||
| + | |||
| + | Tween 클래스를 잘 써먹자. | ||
| + | |||
| + | <code actionscript3> | ||
| + | import fl.transitions.Tween; | ||
| + | import fl.transitions.easing.*; | ||
| + | var new_twn = new Tween( targetObject, | ||
| + | // new Tween( < | ||
| + | // Time(sec or Frame) : 애니메이션이 초 단위냐, 프레임 단위냐 | ||
| + | // is SecTime or Frame : 여기가 trun 면 초 단위, 아니면 프레임 단위 | ||
| + | </ | ||
| + | |||
| + | ==== TweenEvent ==== | ||
| + | |||
| + | tween 애니메이션 종료 시점에 대한 이벤트 | ||
| + | |||
| + | * TweenEvent.MOTION_CHANGE : 트윈 완료 후, 화면 갱신 | ||
| + | * TweenEvent.MOTION_FINISH : 완료 | ||
| + | * TweenEvent.MOTION_LOOP : 반복부분에서 재시작 | ||
| + | * TweenEvent.MOTION_RESUME : 정지 후 재시작 | ||
| + | * TweenEvent.MOTION_START : 시작 | ||
| + | * TweenEvent.MOTION_STOP : 중단 | ||
| + | |||
| + | <code actionscript3> | ||
| + | var twn:Tween = new Tween(box_mc, | ||
| + | twn.addEventListener(TweenEvent.MOTION_FINISH, | ||
| + | |||
| + | function nextTween(event: | ||
| + | { | ||
| + | twn = new Tween(box_mc, | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== 타이머 ==== | ||
| + | |||
| + | 지연시간을 이용하여, | ||
| + | |||
| + | * 반복횟수를 0으로 설정하면 무한 반복 | ||
| + | * TimerEvent.TIMER | ||
| + | * TimerEvent.TIMER_COMPLETE | ||
| + | |||
| + | 1초에 한번씩 타이머에서 발생한 이벤트 횟수를 Output 패널에 출력하는 코드 | ||
| + | |||
| + | <code actionscript3> | ||
| + | import flash.utils.Timer; | ||
| + | import flash.events.TimerEvent; | ||
| + | |||
| + | var timer:Timer = new Timer(1000); | ||
| + | timer.addEventListener(TimerEvent.TIMER, | ||
| + | function timerHandler(event: | ||
| + | { | ||
| + | trace(timer.currentCount); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ====== 마우스 ====== | ||
| + | |||
| + | 무비클립을 클릭이 가능하도록 변경. | ||
| + | * 커서가 무비클립 위에 위치하면, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== 알아두면 요긴한 클래스 ===== | ||
| + | | ||
| + | ==== URLRequest ==== | ||
| + | |||
| + | 서버에 데이터를 요청하거나 보낼때 데이터 정보를 저장하는 클래스. | ||
| + | |||
| + | <code actionscript3> | ||
| + | import flash.net.URLRequest; | ||
| + | // 방법1 | ||
| + | var request: | ||
| + | // 방법2 | ||
| + | var request: | ||
| + | request.url = "< | ||
| + | </ | ||
| + | |||
| + | ==== navigateToURL ==== | ||
| + | |||
| + | ==== Array ==== | ||
| + | |||
| + | ==== Vector ==== | ||
| + | |||
| + | 수학의 벡터가 아니고, STD의 Vector 클래스. 한가지 데이터 타입에 대한 리스트. | ||
| + | |||
| + | ==== PointClass ==== | ||
| + | |||
| + | x,y 좌표를 가진 클래스. 두 좌표 거리를 구하는 것과 같은 메서드가 있다. | ||
| + | 수학의 Vector2 같은 거랑 비슷한 듯. | ||
| + | |||
| + | ===== 마우스 드래깅 ===== | ||
| + | |||
| + | * 드래깅에 사용되는 함수 : startDrag() / stopDrag() | ||
| + | * startDrag()에 Rectangle 객체< | ||
| + | |||
| + | ===== 예제 ===== | ||
| + | |||
| + | ==== 마우스를 따라다니는 커서 ==== | ||
| + | |||
| + | 간단한 감속효과를 사용 | ||
| + | |||
| + | < | ||
| + | // A = (오브젝트 현재 위치) | ||
| + | // B = (목적지) | ||
| + | // C = 0.5 (숫자 상수, 한번에 움직일 거리) | ||
| + | |||
| + | (1) | ||
| + | 새 위치 = A + (B - A) * C; | ||
| + | |||
| + | (2) | ||
| + | 새 위치 += (B - A) * (상수, 1보다 작은) | ||
| + | </ | ||
| + | |||
| + | C가 1이면 한번에 이동하지만 1보다 작은 0.1~0.9 사이 값이면 숫자가 작을수로 천천히 1에 가까울수록 빨리 목적지로 훅 이동한다. | ||
| + | |||
| + | <code actionscript3> | ||
| + | // 마우스를 따라다니는 오브젝트 | ||
| + | // star_mc 라는 무비클립이 있다는 가정. (아무 그림이나 추가하면 됨) | ||
| + | var speed: | ||
| + | start_mc.addEventListener(Event.ENTER_FRAME, | ||
| + | function onUpdate(event: | ||
| + | { | ||
| + | var tg: | ||
| + | tg.x += (this.mouseX - tg.x) * speed; | ||
| + | tg.y += (this.mouseY - tg.y) * speed; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== 마우스를 바라보는 오브젝트 ==== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ====== 문법 ====== | ||
| + | |||
| + | ===== 변수, | ||
| + | |||
| + | 변수 | ||
| + | |||
| + | <code actionscript3> | ||
| + | // 선언 | ||
| + | var < | ||
| + | |||
| + | // 초기화 | ||
| + | var var1 = 1; | ||
| + | // 복사 | ||
| + | var var2 = " | ||
| + | var var3 = var2; | ||
| + | // 삭제 | ||
| + | delete var1; | ||
| + | </ | ||
| + | |||
| + | 상수 | ||
| + | |||
| + | <code actionscript3> | ||
| + | // 선언 | ||
| + | const < | ||
| + | |||
| + | // | ||
| + | const SOME_DEFINE = " | ||
| + | SOME_DEFINE = " | ||
| + | </ | ||
| + | |||
| + | 데이터 | ||
| + | |||
| + | <code actionscript3> | ||
| + | var < | ||
| + | |||
| + | var num:Number = 2.3; | ||
| + | </ | ||
| + | |||
| + | ===== 연산자 ===== | ||
| + | |||
| + | 다른 언어하고 차이 없는 부분 패스 | ||
| + | |||
| + | | as | 데이터 유형 확인 | %%var num: | ||
| + | | is | 데이터 유형 확인 | %%var b:Boolean = " | ||
| + | |||
| + | | %%===%% | 같은 타입에 대해서 값이 같은가 비교. 데이터 타입이 다르면 false | | ||
| + | | %%!==%% | 같은 타입에 대해서 값이 다른가 비교. 데이터 타입이 다르면 true | | ||
| + | |||
| + | 속성 연산자 | ||
| + | |||
| + | < | ||
| + | // 아래 코드는 같은 의미 | ||
| + | var data:uint = num; | ||
| + | var data:uint = this[" | ||
| + | </ | ||
| + | |||
| + | 문자열을 조합해서 속성 값 찾기 가능 | ||
| + | |||
| + | < | ||
| + | var num:uint = 1; | ||
| + | var mc: | ||
| + | // mc1 이라는 오브젝트를 얻는다. | ||
| + | </ | ||
| + | |||
| + | ===== 조건문 ===== | ||
| + | |||
| + | * if() ~ else() | ||
| + | * switch() { case: break; } | ||
| + | |||
| + | ===== 반복 ===== | ||
| + | |||
| + | * for() | ||
| + | * while() | ||
| + | * do ~ while() | ||
| + | * for( var str:String in 오브젝트 ) {} | ||
| + | * for each( var i: | ||
| + | * "for each" : for와 each 사이에 공간 있다. | ||
| + | |||
| + | ===== 함수 ===== | ||
| + | |||
| + | < | ||
| + | function 함수명( 파라미터: | ||
| + | { | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * 파라미터 기본값 설정 가능 | ||
| + | * 함수 외부, | ||
| + | // 함수 외부에서 num 사용시, 바깥쪽의 num 사용 | ||
| + | var num:Number = sum(10,20); | ||
| + | function sum(num0: | ||
| + | { | ||
| + | // 함수 내부에서 num 사용시, 지역변수인 num이 사용된다. | ||
| + | var num:Number = num0 + num1; | ||
| + | return num; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ====익명함수==== | ||
| + | |||
| + | 변수에 함수 객체를 참조 시키는 선언 방법. 호출하기 전에 함수 객체를 넣는 과정이 필요하다. | ||
| + | |||
| + | |||
| + | < | ||
| + | var hello: | ||
| + | { | ||
| + | // do something | ||
| + | } | ||
| + | |||
| + | // 호출 | ||
| + | hello(); | ||
| + | </ | ||
| + | |||
| + | ===== 무한파라미터 설정 | ||
| + | |||
| + | < | ||
| + | function hello(...args): | ||
| + | { | ||
| + | for each( var str:String in args) | ||
| + | { | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // 사용 예 | ||
| + | hello(" | ||
| + | //다른 타입도 되나? | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== OOP ===== | ||
| + | |||
| + | < | ||
| + | // namespace와 같다고 보이는 듯 | ||
| + | package some | ||
| + | { | ||
| + | // 클래스 이름. 파일로 저장하는 경우 클래스 이름을 저장해야 한다. | ||
| + | // 이 클래스를 파일로 저장하는 경우, " | ||
| + | public class SampleClass | ||
| + | { | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 또한 상속 | ||
| + | |||
| + | < | ||
| + | package some | ||
| + | { | ||
| + | public class NewSampleClass extends SampleClass | ||
| + | { | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== 클래스의 특성 ==== | ||
| + | |||
| + | * public : 은 퍼블릭 | ||
| + | * internal : 현재 패키지에서만 | ||
| + | * Final : 다른 클래스에 확장 불가 | ||
| + | * dynamic : 속성을 (임의의 변수를) 추가할 수 있다. | ||
| + | |||
| + | < | ||
| + | // num은 MovieClip의 기본 속성이 아니지만, | ||
| + | var mc: | ||
| + | mc.num = 1; | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== 이벤트 ==== | ||
| + | |||
| + | < | ||
| + | 이벤트발생객체.addEventListener(이벤트이름, | ||
| + | |||
| + | function 이벤트핸들러함수(event: | ||
| + | { | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 제거 | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | 등록확인 | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | 발생 | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ==== 가비지콜렉터 ==== | ||
| + | |||
| + | < | ||
| + | var mc: | ||
| + | mc = null; // 가비지 대상이 된다. | ||
| + | </ | ||