본문 바로가기

AS3.0

[AS3] 외부에서 로드된 객체 복제(재사용) ApplicationDomain 에 대한 개념만 잘 이해 하고 있다면, 이 포스팅은 보지 않으셔도 됩니다. 최근까지 ApplicationDomain 에 대한 개념 자체를 다르게 이해 하고 있어서 어렵다고 생각했던 부분들은 정리 합니다. Flash/Flex 를 사용하면서 가장 많이 사용하는 클래스중 하나는 Loader 일 것 입니다. Loader 클래스는 SWF 나, 이미지 (JPG, PNG 등등) 을 로드 하는데 사용 합니다. 많은 분들이 이미지를 로드 하는데 자주 사용하고 있을거라 생각 합니다. 외부에서 이미지를 로드 하면 로드된 리소스는 Bitmap 으로 처리가 되어 BitmapData 의 clone 메소드를 통해서 해당 이미지를 재사용 할 수 있습니다. 코드는 아래와 같습니다. // 이미지 로드 p.. 더보기
Flash/Flex AS3 - Timeline 의 제어 Part.3 Timeline 제어 Flash의 Timeline이 그냥 시간에 따라 진행 되는 것만은 아닙니다. AS를 통해서 이를 제어하고 코드가 발생하는 순서를 정할 수 있습니다. 기본적으로 Timeline을 제어 하는데 사용하는 액션은 다음과 같습니다. - stop() : Timeline에 있는 재생헤드를 정지합니다. - play() : Timeline에 있는 재생헤드를 움직입니다. - gotoAndPlay(frame, scene =null) : 해당 Scene 에 존재하는 frame으로 이동한 후 재생헤드를 움직입니다. - gotoAndStop(frame, scene =null) : 해당 Scene 에 존재하는 frame으로 이동한 후 정지 합니다. (정지상태) gotoAndPlay와 gotoAndStop의 파.. 더보기
[AS3] TextField 에 한정된 라인에만 글짜 넣기 외부 데이터를 불러 와서 TextField 에 넣어 줄때, 외부 데이터 문자 길이를 UI 에 맞게 잘러서 나타내는 경우가 있습니다. 기본적으로 String 클래스에서 제공하는 substr 등을 이용하여 문자열을 보기 좋게 자르는데요. 여기서 소개 하는 방법은 substr 과 TextField 의 getLineOffset를 이용하여 한정된 라인에만 글짜를 출력 하는 방법 입니다. var field:TextField = new TextField(); field.width = 250; field.wordWrap = true; field.text = "안녕하세요.이것은 테스트 입니다.안녕하세요.이것은 테스트 입니다.안녕하세요.이것은 테스트 입니다."; addChild(field); 위의 코드를 출력하면 아래와 .. 더보기
액션 스크립트로 개발하기 - 2 발행한지 얼마 되지 않았지만, 언제나 일요일 저녁에 오픈캐스트를 발행하는것 같습니다. 포스팅해야지 해야지 생각만 하고 하지 않는 일상이 반복 되고 있네요. 하고 싶어도 못한다는 말은 그냥 핑계 인것 같습니다. 세번째 캐스트를 발행하였습니다. 이번에도 마찬가지로 액션스크립트를 처음 접하거나 초보자를 위한 캐스트 이고요. 어떤 방법을 알려주는 링크라기 보단 초심자가 한번쯤을 읽어 봐야 하는 내용들로 모아 보았습니다. 몇주째, 캐스트만 홍보 하는 블로그가 되고 있네요. ㅜㅜ 캐스트 : http://opencast.naver.com/DO718 더보기
Actionscript3.0의 DisplayList 목차 DiplayList 란? - DisplayList의 3가지 요소 - DisplayList의 구조 - DisplayList 구조의 장점 - Index 개념 - Shape, Sprite, MovieClip - DisplayList의 부모 자식 노드 관계 탐색이 간편해짐 DisplayObject 클래스 - DisplayObject를 상속받는 클래스 - 속성 메소드 및 이벤트 - root , parent, stage 에 접근하기 - Loader 를 사용해 불러온 외부 swf 의 root 와 stage DisplayObjectContainer 클래스 - DisplayObjectContainer 의 상속 - 속성 및 메소드 DisplayList 란? DisplayList 란 SWF안에 존재 하는 객체들 중에 .. 더보기
Flash player 의 보안 Front - End 개발을 하다 보면 Flash player의 보안 범위를 판단하지 못해 곤란한 일을 겪은 일이 있을것이다. Flash 개발자의 경우에는 미쳐 알지 못한 내부 보안 설정을 하지 않아서 데이터를 못불러 온다거나, 바뀐 Flash player 보안 정책 때문에 고생을 했을 수도 있고, UI개발자의 경우에는 Flash 개발자가 없는 상태에서 여러 상황을 판단을 해야 하지만 Flash player의 보안 규칙에 대해 알지 못해서 혼란 스러운 경우가 있을 것이다. 이 문서는 모든 Flash 개발자와 UI개발자가 알아야 할 Flash player의 보안에 대해 기초적인 내용을 다룰 것이다. Flash player 보안 개요 Flash player의 보안은 Flash, Flex 로 만들어진 SWF .. 더보기
AS3.0의 통신 - 브라우저와의 통신 (Javascript) Flash의 컴파일 결과물인 SWF는 그 자체로 UI 나 GAME 그리고 어플리케이션(AIR)이 될 수 있지만, 대부분은 브라우저에 Embeded 되어 사용됩니다. 배너와 같이 단순하게, 보여 주기 위해서 브라우저에 Embeded하는 경우도 있겠지만, UI 나 웹 어플리케이션을 구현할 때는 브라우져나, 서버사이드 언어와의 통신이 필요 하게 됩니다. AS3.0으로 거의 대부분의 Front-End 단의 개발작업을 모두 할 수 있긴 하지만, 퍼포먼스나 구현의 편의성을 위해 Javascript를 사용해야 하는 경우가 많습니다. 이 문서는 앞으로 몇개의 포스팅을 통해 다루게 될 AS3.0의 통신 방법에 대한 첫 문서로서 AS통신의 가장 기본이라 할 수 있는 브라우저와의 통신에 대해 다루고 있습니다. SWF와 브라.. 더보기
AS2.0에서 AS3.0으로의 달라진 점은 무엇인가? 문서 원본 : Adobe 기술문서 작성된 날짜 : 2009-05 저자 : 강동혁(동강) 저자 소개 : Daum communications 에서 UI 개발 업무를 하고 있으며, Flash 커뮤니티에서 ‘동강’ 이라는 닉네임으로 활동하고 있다. 뭐든지 사용하기 편해야 한다는 생각을 가지고 개발을 하고 있으며, 최근엔 새로산 자전거를 자주 못타고 다녀 아쉬워 하고 있다. -Display 객체들의 다양화 -Display List구조의 변화 -객체의 심도 관리 향상(Depth에서 index로) -Depth방식에 비해 Index방식이 효율적인 점 -이벤트 모델의 변화 Flash를 하던 많은 사람들이 AS3.0이 나오고 나서 혼란스러웠던 이유는 두 가지이다. 첫 번째로 Flash에서 핵심이라고 할 수 있는 Displ.. 더보기
AS3.0 에서의 메모리 관리 package{ import flash.display.MovieClip; import flash.display.Sprite; /** * @author kang */ public class ResourceTest extends Sprite { public function ResourceTest() { var mc : MovieClip = new MovieClip(); addChild(mc); mc.addEventListener(Event.ENTER_FRAME, onEnterframeHandler); } private function onEnterframeHandler(event : Event) : void { trace("execute event"); } } } 위와 같은 코드가 있다고 하자. mc는 Ev.. 더보기
타임라인에서 일어 나는 동작을 알려주는, TimelineWatcher Flash에서 MovieClip을 이용한 작업을 하다 보면 MovieClip에서 일어나는 동작을 코드상에서 알아 내서 이벤트를 발생 시켜야 하는 경우가 있다. 예를 들어 다음과 같은 Timeline이 있을때 재생헤드가 30 frame에 도달 할때 이 동작을 알아 내어 코드를 실행 시켜야 하는 경우가 있다. 이럴 경우 30 frame에 dispatchEvent를 사용하여 MovieClip을 가지고 있는 객체에 이벤트를 전달해 주는 방법을 사용할 수 있다. dispatchEvent(new Event("playheadreached"); MovieClip에서 전달한 이벤트는 this.addEventListener("playheadreached",headreachedHandler); private function.. 더보기
긴 길이의 String을 TextField에 나타내기 위한 메소드 Javascript나 Actionscript에서 긴 길이의 문자열을 고정된 너비의 TextField에 집어 넣으려면 substr(startIndex,length) 이나 substring(startIndex,endIndex)을 사용합니다. 원하는 문자의 길이 만큼 파라 미터를 넘겨서 처리 하면 손 쉽게 해결 됩니다. var field:TextField = new TextField(); addChild(field); var str:String = "Flash Actionscript3.0 플레시 액션스크립트"; field.text = str.substring(0,20); 하지만, 위와 같은 방법에는 치명적인 단점이 있습니다. 영어와 한글의 너비값이 차이가 있기 때문에, 영문의 10글짜와 한글의 10글짜의 너비.. 더보기
숫자에 1000단위 콤파(,)를 넣어주는 방법 -AS3.0 var money:Number = 100000000; trace(numberToDot(money)); function numberToDot(num:Number):String { var str:String= String(num);// 숫자값을 받아서 String유형으로 변경한다. var str_arr:Array = new Array(); for (var i:int = 0; i < str.length; i++) { // str에 있는 문자값을 charAt을 이용하여 하나씩 불러온 뒤, 배열에 넣는다. // i%3 이 0일때 마다 쉼표를 삽입하여 문자들을 3개씩 나눈다. if ( i % 3 == 0 && i != 0) { str_arr[i]=str.charAt(str.length-1-i)+","; } else.. 더보기
왜 Actionscript 3.0을 사용해야만 하는가? 문서 원본 : AdobeRIA 기술문서 작성된 날짜 : 2009-02 저자 : 강동혁 저자 소개 : Daum communications에서 UI 개발 업무를 하고 있으며, Flash 커뮤니티에서 ‘동강’ 이라는 닉네임으로 활동 중이다. 뭐든지 사용하기 편해야 한다는 생각으로 개발을 하고 있으며, RIA와 HCI에 관심이 많다. Blog : www.ddongkang.com 목차 1. 서론 : 왜 Actionscript 3.0 인가? 2. 본론 : Actionscript3.0을 배워야 하는 이유 - 향상된 연산속도 - 보다 엄격한 디버깅 기능 - 크로스 스크립팅 - OOP를 위한 지원 - Flashplatform의 언어 - Flash API와 Display 및 Event 3. 결론 : 다음 편 예고 왜 Ac.. 더보기
Actionscript3.0 학습법 커뮤니티의 질문들 중에서 단연 1위를 달리고 있는 "Actionscript 학습법" 에 대해, 오직 제 견해와 경험을 통해 작성해 보려고 합니다. - Flash MX , Flash 8, Flash CS3, Flash CS4 먼놈의 버젼이 이렇게 많은 건지 많이 혼동 됩니다. 시중에 나와 있는 책들을 보면 벌써 CS4가 출시 되었음에도 불구 하고, MX 버젼과 그 이하 버젼의 책들을 종종 보게 됩니다. 당연히 Flash를 처음 시작 해야 겠다고, 다짐하고 서점에 간 분들은 혼동 될 수 밖에 없지요. 보통 액션 스크립트 책은 Flash 라는 제목을 작게 표기 하고 Actionscript를 크게 표기 하기 때문에(?) Flash 8 이라 크게 적혀 있는 책을 고르게 됩니다. 그리고 카페에 와서 물어 봅니다. .. 더보기
Actionscript3.0 강좌 모음 동강의 AS3.0 기초 강좌 1강 Flash CS3 || Actionscript3.0 2강 Event 의 이해 와 꼭 알아 둬야할 프로그래밍의 기초 3강 - MouseEvent, Event.ENTER_FRAME 활용 4강 - Tween 클래스와 객체 동적 생성(1) 5강 - DisplayObejct 와 객체 동적 생성(2) 6강 - Document Class 로의 진화 7강 - 사용자 정의 클래스의 이해 8강 - Timer, Loader 클래스의 사용 9강 클래스를 이용한 이미지 슬라이드 - 1 10강 - Array + caurina Tweener = iMac Navigation 11강 - iMac Navigation -(1) 12강 Event.... Event... Event... 문군의 3.0 Cla.. 더보기
Openapi 를 이용한 이미지 슬라이드 작년 매쉬업 대회 준비하면서 올린 파일인데, 오랜만에 보니 새롭게 느껴 지네요. 곧 매쉬업 대회 일정도 시작할것 같은데, Flash 로 매쉬업을 준비하시는 분들은 참고 하시기 바랍니다. 오픈 API란 무엇인가요? 오픈 API(OpenAPI)란 자사의 API를 외부에 공개한 것으로 일반적으로 웹 서비스(Web Services)형태로 공개한 것을 말합니다. 위키피디어에서는 API를 "응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스"로 정의하고 있습니다. 즉, 원래는 운영체제나 언어가 제공하는 기능을 제어할 수 있는 인터페이스였으나 이를 웹서비스에서는 특정 서비스를 이용할 수 있는 인터페이스를 API라 지칭하였습니다. 또한 이것을 외부에서 사.. 더보기
런타임에서 Flash graphics 을 이미지로 만들기 Snapshot Explorer (click to launch) 위의 예제에 대한 기술문서 링크 더보기
[AS3.0] Array 간단한 팁 Actionscript3.0 에서의 이중 배열을 만드는 방법은 여러가지가 있지만 전 이렇게 사용합니다. var parent_arr:Array =new Array(); var sub_arr1:Array = new Array(); sub_arr1 = ["sub_1","sub_2","sub_3","sub_4","sub_5"]; var sub_arr2:Array = new Array(); sub_arr2 = ["sub2_1","sub2_2","sub2_3","sub2_4","sub2_5"]; parent_arr = [sub_arr1,sub_arr2]; trace(parent_arr[0][0]); trace(parent_arr[0][1]); trace(parent_arr[0][2]); trace(parent_ar.. 더보기
Flash Actionscript3.0 ToolTip Flex 에서는 기본적으로 component 옵션으로 tooltip 을 제공 하고 있지만, Flash 에서 툴팁을 만들어 쓰기란 여간 귀찬은 작업이 아닐수 없습니다. 그래서 Flash 기반의 쓸만한 tooltip 을 소개해 봅니다. ToolTip.as static 메소드로 이루어져 있는 하나의 툴팁 클래스로 스테이지나 오브젝트에 생성되는 모든 tooltip 들을 관리 합니다. 사용법은 간단합니다. 우선 사용 예제 부터 보시면 아래와 같습니다. 해당 target 에 대한 MouseEvent.MOUSE_OVER 만으로 이벤트를 처리 하게 됩니다. Out 이벤트를 따로 처리할 필요가 없이 단지 Over 이벤트만 처리 하면 됩니다. 사용시 두단계를 거쳐야 합니다. 우선 첨부한 ToolTip.as 파일을 impo.. 더보기
[AS3.0] EmbedFonts 관리 하기 embededFonts 를 사용한 TextField , TextArea , TextInput 폰트 관리 하는 방법 입니다. var hyfont:Font = new HYKANG(); // 할 필요 없음 var format:TextFormat = new TextFormat(); format.font = hyfont.fontName; // format.font = "폰트이름"; 으로 대체 가능 format.bold = true; format.size = 15; atxt.text = "플래시 액션스크립트 카페, 정기 스터디 모임, 우왕 굿"; // TextArea atxt.setStyle("antiAliasType", AntiAliasType.ADVANCED); atxt.setStyle("embedFonts",.. 더보기