디스플레이 엔진 : Vector기반 Blitting 구현하기 'Graphics로 Blitting을 구현하기'를 읽고... 트래픽 최적화를 위해 보통 BitmapData 클래스를 이용한 방법만 생각했었는데, 플래시가 벡터기반 프로그램이라는 관점에서 접근하면 너무나 당연하게 생각할 수 도 있지만, 전반적인 특성들을 고려해 봤을 땐, 상당히 흥미로운 접근법 입니다. 플래시10은 Graphics 객체의 모든 메서드들에 대해 대응하는 커맨드 객체를 지원합니다. 정말 멋지군요. 자료 Graphics로 Blitting을 구현하기 http://www.diebuster.com/?p=1276#viewSource 출처 : dieBuster 플리핑( flipping ) 이란? - 기본표면( primary surface )과 보조표면( back buffer ) 사이의 자료 이동을 말한다.. 더보기 디스플레이 엔진 : Bitmap기반 Blitting 구현하기 'BitmapData로 Blitting을 구현하기'를 읽고... AS3.0 의 핵심기능은 DisplayObject 모델객체로 구성되어있고, Event 모델을 사용하여 복잡한 이벤트를 전파하고 있습니다. 실행 속도를 중요시 하는 게임개발에 있어, 객체지향( OOP ) 프로그램 구조가 효율적이긴 하나, 전반적으로 무거운 구조를 가지고 있기 때문에, 어떠한 실행환경이냐에 따라 다른 방식으로 제작해야 할 필요성을 느낍니다. 이미 다른 언어에서 사용하고 있는 개념을 적용하여, 현명한 해결책까지 제시해주고 있습니다. 플래시 액션스크립트만 사용하고 있는 유저들에겐 생소하게 느껴질 수 있는 개념인듯 합니다. 플래시 게임에 관심 있는 분들은 꼭 한번 읽어 볼만한 포스트글인거 같습니다. 자료 Bitmapdata로 Blit.. 더보기 렌더링 최적화 : 성능에 따른 렌더링 주기 조정 '성능에 따른 렌더링 주기 조정'을 읽고 평소에 FPS 게임 제작에 관심이 많았는데, 트레픽 지연에 따른 렌더링 부화를 어떻게 해결해야하는지 좋은 글이 있어 소개합니다. 아래 포스팅 해놓은 글을 읽어 보면, 많은 도움이 되리라 생각되네요. 자료 성능에 따른 렌더링 주기조정 http://www.diebuster.com/?p=1785 출처 : dieBuster 더보기 이벤트 모델 : EventDispatcher 클래스 dispatchEvent 구현 - AS2.0 문제 AS2.0에서 dispatchEvent를 어떻게 구현할까요? 사용법 액션스크립트 2.0에 와서 제대로된 클래스 키워드가 도입되면서 OOP 구현이 가능하게 되었습니다. 3.0에서 사용하는 dispatcherEvent 기능을 사용하여 이벤트리스너를 등록해서 값을 받아오는 클래스를 구현해 보도록 하겠습니다.. /****************************************** * TT.as : 리스너 클래스 * EventSource.as : 이벤트를 발생하는 클래스 * TT_test : 소스 fla 파일 ******************************************/ //EventSource.as 클래스 ------------------------------------------.. 더보기 AS2.0에 대한 생각... 2.0의 가장 큰 특징은 모든 작업이 무비클립심볼 중심으로 이뤄 진다는 것이다. 애니, 버튼, 자체움직임, 케이스, 기타 등등... 무비클립만 있으면 모든걸 할 수 있다. 그래서 무비클립심볼이 가지고 있는 메서드( 내장함수) 나 프로퍼티( 속성 )만 외우고 기본적인 프로그래밍 지식만 있다면 어렵지 않게 다양한 기능들을 구현할 수 있다. 순수프로그래머들이 플래시를 하면서 어려움을 느끼는 것들이 몇 가지가 있는데, 모션구현 과 무비클립계층구조 그리고 타임라인에서의 스크립트 연속성이라고 할수 있겠다. 여기서 2.0의 무비클립계층구조에 대해서 알아보자. '무비클립 속의 무비클립속의 무비크립속의 마이무비' 이부분을 스크립트로 표현하면 mc.mc.mc.mymc 이렇게 표현한다. mymc에 접근하려면 'mc.mc.m.. 더보기 AS3.0 핵심 개념 : Event Model 개요 액션스크립트 3.0 으로 넘어오면서 display object 구조 만큼 혁신적인 개선이라고 한다면, 단연 이벤트 모델이라고 할 수 있습니다. 기존 2.0 이하 버전에서는 단순한 callback 함수형태의 이벤트를 사용했습니다. 물론 사용하기엔 편했지만, 정밀한 제어를 할 수 없기 때문에 복잡한 인터랙셕을 구현하기 위해서는 반복적인 이벤트 코드를 사용할 수 밖에 없는 구조 였었습니다. callback 함수란 미리 이벤트 핸들러를 등록해놓고, 해당 이벤트가 호출됐을 때 리스너에게 이벤트를 전달해주는 개념을 강조하는 의미입니다. 3.0에서는 EventListener라는 조금 어려운 용어를 쓰고 있습니다. EventListener라는 개념에선 이벤트 우선 순위와 이벤트 흐름을 제어 할 수 있습니다. 3... 더보기 AS3.0 핵심 개념 : Display Object 개요 Display Object는 액션스크립트 3.0에서 지원하고 있는 시각화 객체들에 대한 관리시스템입니다. 우리가 알고 있는 OOP에 대한 개념을 실전에 적용한 대표적인 사례이기도 합니다. 기존 MoveiClip에 집중되어 있던 기능들을 Display Object 쪽으로 편입 시키거나 또는 저기반 언어로 재구성하였습니다. AS2.0 에서 객체( MovieClip)를 시각화 시킬 때 'attachMovie'라는 키워드를 사용했는데, AS3.0에서는 'addChild' 를 사용합니다. 언듯 보기에는 동일해 보입니다. 여기서 잠시 두 명령의 차이를 보도록 하겠습니다. - attachMovie : Display Object간 관계 구성과 동시에 객체의 인스턴스 생성. ( 의무적인 인스턴스명 부여 ) 사용예(.. 더보기 AS3.0 크로스스크립팅 : ApplicationDomain 클래스 문제 main.swf 에서 sub.swf 를 불러와서 어떻게 상호제어 할 수 있을까? AS2.0에서는 인스턴트네임을 이용해서 바로 접근이 가능했지만 3.0에 와서는 더 이상 그런 기능을 사용할 수 없습니다. 대신 인스턴스 네임이 아닌 getDefinition("클래스네임") 메서드를 이용해 해당 객체를 참조할 수 있습니다. 사용법 /****************************************** * Main.as : 이벤트리스너 클래스 * Sub.as : 이벤트를 발생하는 이벤트소스클래스 ******************************************/ //Sub.as 클래스 ------------------------------------------- package { impo.. 더보기 AS3.0 플래시 보안 : Security 클래스 플래시 보안의 기본개념 - 센드박스 보안 - 센드박스란 같은 상자안의 모래상자에는 보안이 필요없고, 다른 상자안에 있는 모래와는 보안을 해야하는 개념. - 샌드박스 보안이 플래시에 적합한 이유는 샌드박스 개념이 도메인 이름과 연관 관계를 가지고 있기 때문. - 다음과 같은 경우에 있어서 서로 다른 샌드 박스로 인식함. http://example.com http://www.example.com http://store.example.com https://www.example.com http://192.0.34.166 해당 주소 중 유념히 살펴봐야 할 부분이 http 와 https 프로토콜이다. 같은 서버있지만 서로 다른 샌드박스로 인식하고 있다는 것이다. 흔히 개발자들은 '사용하고자 하는 데이터가 다른 서버.. 더보기 웹접근성 : Tab키 활용 시 MouseEvent 와 KeyboardEvent 구분 문제 Tab키를 눌렀을 때 버튼에 focus 가 선택된 상태에서 엔터키를 누르면 MouseEvent 도 같이 발생하므로써 리스너 실행 구간을 두번 반복 호출하는 문제가 생겼습니다. 아래 예제를 보면 Tab키를 누른 후 엔터를 치게되면 두개의 리스너 모두 호출됨을 확인할 수 있습니다. 예제) stage.addEventListener( KeyboardEvent.KEY_DOWN, onKeyDownHandler ); btn.addEventListener( MouseEvent.CLICK, onClickHandler ); private function onKeyDownHandler(): void { trace( "KeyboardEvent" ); } private function onClickHandler(): vo.. 더보기 이전 1 ··· 5 6 7 8 9 다음