본문 바로가기

FLASH/AS3.0기초

AS3.0 이벤트에 대해 알아봅시다. 이벤트란 버튼을 클릭하거나 키보드를 입력하거나 마우스를 움직이거나 사운드재생이 끝나거나데이터가 로드되는 등의 사건을 말합니다. 플래시의 가장 큰 장점인 인터랙티브라는 특성은 이벤트의 다양성에서 비롯됩니다.AS3.0에서는 기존의 콜백구문이나 이벤트핸들러방식과는 달리 이벤트브로드캐스팅방식으로 처리합니다. 이전버전(AS2.0이하)에서는 버튼이나 무비클립에 이벤트 핸들러를 달아주거나 콜백이벤트를 해주거나 이벤트리스너를 달아주었었는데 AS3.0에서는 Event 및 EventDispatcher클래스를 사용한 이벤트 모델만을 사용합니다.이게 뭔소리인지 처음보는 사람에게는 헷갈리는 표현일 수도 있겠군요.어찌되었건 간에 한가지 방법으로만 이벤트를 처리한다는 것입니다.이벤트에 대해서는 하루종일 설명해도 모자랍니다. 그래서.. 더보기
클래스로 코딩하기 플래시에서는 예전부터 해오던 전통적인 방법이 있습니다.그 방법은 엄밀히 말하면 암묵적으로 패키지와 main함수를 생략한 구문입니다. AS3.0에서는 아래의 클래스 코딩방법을 권장하고 있습니다.다음 코드는 텍스트필드의 특성 인스턴스에 속성을 부여하여 화면에 원하는 텍스트를 뿌려주는 예제입니다. package { import flash.display.Sprite; import flash.display.TextFieldAutoSize; public class TextFieldSample extends Sprite { public function TextFieldSample():void{ trace("생성자"); txt.autoSize = TextFieldAutoSize.CENTER; txt.text = "I .. 더보기
Document 클래스의 이해 Document Class는 플래시IDE(저작환경)에서만 사용되는 독특한 클래스입니다. 타임라인을 의미합니다. 여러 클래스들 중 시작 클래스 파일이라고 생각하면 됩니다. 자바에서는 main()클래스가 가장먼저 작동되는 데 Document Class가 그런 역할을 하는 클래스입니다. 도움말에 예시로 나온 샘플 코드나 reference 같은 책에서 package{} 로 시작되는 예문은 이 Document Class를 이용하는 것입니다. Document Class의 위치 Document Class는 stage의 위에 자동으로 놓여지는 첫 번째 MovieClip클래스 또는 Sprite클래스입니다. 새fla파일 만들고 메인타임라인라인에 이렇게 입력해 봅시다. trace(this); trace(this,parent.. 더보기
클래스와 객체 클래스는 연관있는 함수와 변수를 묶는 것입니다. 변수와 메서드 들의 모임으로서 "자기일은 자기가 처리한다"라는 객체지향 개념을 구현하기 위한 단위가 됩니다. 빌트인 클래스 : 플래시 내부에 만들어져 있는 클래스 사용자 클래스 : 유저가 만들어서 사용하는 클래스 자료구조에 대해 알아 보도록 하겠습니다. 데이터를 저장하는 관점의 발전단계는 아래와 같습니다. 변수 → 배열 → 구조체 → 클래스 클래스도 하나의 데이터 타입입니다. 메모리에 저장해야 하므로 데이터 타입이 필요합니다. 다음은 각각의 숫자, 배열, 객체, 클래스를 정의하는 예제입니다. var i:Number = 314; var arr1:Array = new Array(); var obj1:Object = new Object(); var myClass.. 더보기
OOP란 OOP의 기본적인 내용을 먼저 해나가겠습니다. OOP가 나온 배경은 구조적 프로그래밍(C언어)의 한계때문이었습니다. 절차지향언어는 실행속도는 빠르지만 유지보수가 어렵습니다. 반면에 객체지향으로 프로그래밍하면 유지보수성이 우수하기 때문에 요즘의 프로그래밍은 객체지향이 대세입니다. 그리고 실행속도가 느리더라도 워낙 하드웨어가 빠르기 때문에 문제되지 않습니다. 최초의 객체지향언어는 simulra67이란 언어이고 smalltalk, C++, java등의 언어가 객체지향 언어입니다. 객체지향 용어를 알아보도록 하겠습니다. 객체와 클래스(Object and Classes) 붕어빵이 객체라면 붕어빵틀이 클래스입니다. 하나의 클래스로 여러개의 객체를 만들어 낼 수 있습니다. 메소드(Method) 객체와 관련되어 객체에.. 더보기
Math Math 객체는 수학함수의 모음입니다. 프로그래밍 언어는 공학적인 용도로 쓰이는 경우가 많습니다. Math객체는 많은 유용한 메서드들을 가지고 있습니다. 다른 언어와 같이, 수학 함수 및 값을 나타내는 메서드와 상수가 아래와 같이 많습니다. 각도 표시는 도가 아니라 라디안입니다. 1 라디안은 180도 입니다. 즉 라디안 값을 계산하려면 다음 공식을 사용하고, radians = degrees * Math.PI/180 라디안에서 도를 계산하려면 다음 공식을 사용합니다. degrees = radians * 180/Math.PI 대부분 메서드와 상수의 특성은 static임을 유의하기 바랍니다. 즉 아래 예제와 같이 하면 됩니다. var abs_1:int = Math.abs(-5); var root_1:Numbe.. 더보기
타이머 타이머 클래스는 이전에 없던 클래스로서 타이머에 대한 인터페이스 입니다. 인터페이스는 객체지향을 공부해야 알 수 있는 개념인데 상속의 개념을 나중에 공부하면서 알아보시기 바랍니다. 액션스크립트 3.0의 API구조가 객체지향 구조로 되어 있기 때문에 이전처럼 절차지향 프로그래밍만 공부해서는 제대로 사용할 수가 없습니다. 객체지향은 나중에 배우게 되겠지만 이왕 배우는 거 철저히 배우도록 합시다. 새 Timer 객체를 만들어 지정된 시간 sequence에 따라 코드를 실행할 수 있습니다. 타이머를 시작하려면 start()메서드를 사용합니다. 타이머 간격에 따라 실행할 코드를 설정하려면 timer 이벤트에 대한 이벤트 리스너를 추가합니다. 지정된 간격마다 반복 실행하거나 한 번만 실행할 Timer 객체를 만들어.. 더보기
AS2.0 과 AS3.0의 대표적인 차이점 1. attachMovie를 어떻게 구현하나요? attachMovie, duplicateMovieClip 등의 복사 개념이 사라졌습니다. addChild를 사용하는 방법을 예제를 통해 배워봅시다. [1] Symbol 1무비클립을 만든다. [2] Libraries에서 Symbol 1 항목에서 마우스 오른쪽 버튼 클릭하면 나오는 Linkage 선택 [3] 아래그림처럼 설정한다. [4]메인타임라인에 아래의 코드입력 var m_rectText1:Rect= new Rect(); addChild(m_rectText1); 2. loadMovie는 어떻게 구현하면 되나요? 이전버전의 loadMovie()는 Loader()클래스를 이용하여 구현한다. var imageLoader:Loader= new Loader(); v.. 더보기
Object 클래스 Object클래스는 액션스크립트 클래스 계층의 최상위에 해당하는 클래스입니다. API의 상속구조에서 가장 상위에 있는 것이라고 보면 됩니다. 그렇게 때문에 무엇이든 Object라고 할 수 있습니다. Object는 동적으로 속성을 할당할 수 있습니다. Object객체를 생성하는 방법에 대해 알아보도록 하겠습니다. [1] new 연산자를 사용 var myObject:Object = new Object(); [2] {} 구조체를 변수에 담아서 사용 var myObject:Object = {}; 이렇게 코딩하면 Object가 생성됩니다. 그러면 Object에 속성 및 함수를 추가하는 방법을 알아보겠습니다. var myObject:Object = new Object(); myObject.age = 23; myOb.. 더보기
Array Array는 각각의 개별적인 데이터값을 여러개 포함하고 있는 데이타구조입니다. 이것은 마치 건물빌딩에 각각의 여러 층이 있는 것과 같습니다. 개별적인 데이터타입과는 다르게 배열은 하나이상의 데이타값을 가질 수 있습니다. 데이타를 다루는데 매우 효율적이기 때문에 배열은 열심히 공부를 해야 합니다. [배열만드는 방법 3가지]1. new 생성자 사용var arr1:Array = new Array(); arr1[0] = "액션"; arr1[1] = "스크립트"; arr1[2] = "3"; trace(arr1); // '액션,스크립트,3' 출력 2. 배열객체를 생성하면서 값 넣기var arr2:Array = new Array('액션', '스크립트', '3'); trace(arr2); // '액션,스크립트,3' 출.. 더보기