본문 바로가기

Flex

TextEvent를 사용해서 htmlText의 링크 클릭이벤트를 처리하기 데이터를 표시 하다보면 어쩔수 없이 버튼등으로 처리 하지 못하고 Text나 Label 등을 사용해서 보여줘야 하는 경우가 생긴다. Text 데이터를 보여 주면서 외부 링크의 경우 htmlText에 직접 링크를 걸어주면 되지만 플렉스 내부에서 처리 해야 하는 경우에는 좀 곤란해지기도 하는데 이럴때 TextEvent로 htmlText의 링크를 체크 할수 있다. TextEvent.LINK 와 TextEvent.TEXT_INPUT 두개밖에 없고 매우 간단하다 TextEvent () 생성자 public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "") 언어 버전: ActionScr.. 더보기
플렉스 팝업을 띄우고 데이터 교환하기 플렉스에서 팝업에 관해서 가장 많이 나오는 질문중 하나가 팝업을 띄울때 어플리케이션의 데이터를 보내고 싶다거나 팝업이 닫힐때 데이터를 받아서 특정 함수를 실행시키고 싶다거나 하는 것이다. 이전에 쓴글 2010/02/17 - [Flex] - 커스텀이벤트 (Custom Event) 만들기 / 사용하기 를 보면 어느정도 알수 있지만 정확하게 팝업을 위해서 쓴 글이 아니기 때문에 실제 사용에 힘들어 하는 사람들을 보게 된다. 그래서 간단한 예제로 구현을 해보고자 한다. 예제를 보면 보낼 데이터에 rinn.kr 이 들어있고 팝업 띄우기를 클릭하면 팝업이 뜨면서 보낸 데이터가 보여진다. 팝업에 보낼데이터 필드에 들어있는 값이 어플리케이션에도 반영된다. 팝업으로 데이터를 보낼때에는 팝업컴포넌트의 public 변수에 .. 더보기
Flex 레이아웃 잡기 - 제한 레이아웃 (constraintRows, constraintColumns) 플렉스의 레이아웃 컨테이너는 여러가지 종류가 있지만 가장 많이 사용되는 것은 Canvas, Box (VBox, HBox) 일것이다. 기본적으로 Canvas 는 absolute 기반으로 즉 좌표를 기반으로 절대위치를 결정해서 아이템을 배치 하게 되고 Box 계열은 vertical 이나 horozontal 정렬 방식으로 다른 아이템들과의 위치를 판단해서 전체적인 배치를 하게 된다. 어느것이 좋냐는 아빠가 좋냐 엄마가 좋냐 정도의 문제가 될수 있으니 일단 배제 하고.. 아래 그림과 같은 레이아웃을 만든다고 가정하고 간단하게 구조를 잡아보자.. 클릭해서 보면 상단,하단의 위아래로 나눠진 구조에 아래쪽은 좌,우로 나눠진 형태이다. 일반적인 사이트들의 레이아웃이고 관리자화면을 꾸밀때나 게시판 형식을 만들때 자주 보.. 더보기
BlazeDS로 프로젝트 만들기 이전 포스팅에서 환경 세팅을 위한 파일을 받고나서 벌써 시간이 꽤 흘러버렸다.. 2010/02/09 - [Flex/BlazeDS / iBatis] - Flex와 BlazeDS, iBatis를 사용하기 위한 환경 설정하기 - 다운로드 환경 세팅은 됐다고 치고 -ㅅ-; 프로젝트를 만들어보자... 포스팅 타겟은 초보자인데.. 어째 좀 불성실한 느낌이 들지만 기본 톰켓환경 세팅등은 다른곳에 워낙 잘 정리되어있으니 구글님을 참고 해서 세팅 하는걸로 하고 넘어간다. 이클립스에 플렉스 플러그인으로 설치되어있고 톰켓 5.5에 BlazeDS.war 파일도 가지고 있으니 이클립스에 서버를 세팅하고 플렉스 프로젝트를 만드는 과정을 그림과 함께 친절하게 따라가보자. 1. 이클립스를 실행한다. [그림 생략]... 2. 서버를 .. 더보기
데이터그리드 아이템랜더러 사용 및 CollectionEvent 오늘 좀 한가하다 -ㅅ-;;; 덕분에 하나 더 올리게 되었다. 이번 포스팅은 이전 포스팅의 계량형이라고 할까.. 업그레이드 버전 정도 된다. 2010/03/09 - [Flex/Event] - 데이터 그리드 ListEvent / DatagridEvent 특정 칼럼만 에디트 하기 목적 이전 포스팅에서 더블클릭으로 아이템 에디트 모드로 들어가고 클릭으로 선택 하는 형식으로 만들었는데 이번에는 itemRenderer를 이용해서 에디트 버튼을 가지고 있는 데이터 그리드를 만든다. 그리고 디비에 데이터를 업데이트 한다고 할때 어느 시점에서 업데이트를 해야 하는지 CollectionEvent를 이용해서 알아본다. rinn퍼플린Bmagis들캔디Azzatung짝퉁??.btnEditColumn{upSkin: Embed(s.. 더보기
데이터 그리드 ListEvent / DatagridEvent 특정 칼럼만 에디트 하기 데이터 그리드는 RIA 에서 빈번히 사용되는 컨트롤중 하나 이다. 관련된 이벤트도 많고 중요도도 높은 편이다. 데이터 그리드에서 editable = true 로 세팅 해주면 해당 칼럼을 그리드 내부에서 편집할 수 있다. 이것은 itemEditor를 통해서 가능해진다. 이 포스트에서는 특정 칼럼만 편집할 수 있도록 하고 몇가지를 더 추가 해서 완성하는 것을 해본다. 일단 mxml 부분 (태그 앞부분이 소문자로 나오는건 syntaxHighliter 때문이니 신경쓰지 않아도 된다) rinn 퍼플린 B magis 들캔디 A zzatung 짝퉁 ?? 아이디와 이름 혈액형을 model 로 데이터를 세팅하고 데이터 그리드에 바인딩 한다. 데이터 그리드에 연결되어있는 이벤트는 아래쪽에서 구현 예정이다. 아이디와 혈액형.. 더보기
SecurityError: Error #2070 - Stage/requireOwnerPermissions() 어플리케이션에서 SWFLoader 를 사용하여 다른 도메인의 SWF 파일을 불러올때 나는 에러이다. SecurityError: Error #2070: 보안 샌드박스 문제가 발생했습니다. 호출자 http://호출된domain/aaa.swf은(는) http://호출한domain/2008.swf이(가) 소유한 스테이지에 액세스할 수 없습니다. at flash.display::Stage/requireOwnerPermissions() at flash.display::Stage/addEventListener() at mx.flash::UIMovieClip/creationCompleteHandler()[E:\dev\flex\sdk\frameworks\projects\flash-integration\src\mx\fla.. 더보기
ViweStack Change Event - IndexChangeEvent TabBar / TabNavigator / ButtonBar 등.. ViewStack 과 관련된 컨테이너들을 사용하면서 가장 많이 나오는 질문은 "두번째 탭에 있는 오브젝트를 엑세스 하려고 하니 null 이라고 해요" 이다. 분명이 mxml 에서 다 만들어져 있는데.. 왜 안된다고 하는것인지 모르겠다고 질문이 올라오면. 가장 많이 달리는 답변이. "creationPolicy = "all" 로 해주세요" 이다. 과연 맞을까? 분명 저렇게 하면 에러가 나지 않고 전부 만들어진다. creationPolicy = "all" 은 생성 정책을 전부 만드는걸로 하겠다는 뜻이다. 탭이 세개가 있으면 탭 세개 안에 들어있는 컴포넌트 들을 처음 로딩시에 전부 만들겠다고 선언하는 것이다. 그럴리야 없겠지만 백개가 있으면 백.. 더보기
StringUtil.substitute 사용하기 mx.utils 에는 편하게 사용할 수 있는 api 가 담겨있다. ObjectUtil.toString 같은 것은 많이 사용하고 꽤나 유용하게 쓰인다. 이 포스트에서 이야기 할 substitute 는 간단하게 이야기 하면 문자열을 치환 해주는 메서드이다. 간단히 코드를 보면 이해가 될것이다. private var str:String = "select * from TABLE_NAME where userid='{0}' and menuid='{1}'"; private function build():void { var query:String = StringUtil.substitute(str,"rinn","n002"); trace(query); //select * from TABLE_NAME where userid.. 더보기
커스텀이벤트 (Custom Event) 만들기 / 사용하기 Flash / Flex 에서 사용되는 이벤트는 종류도 많고 거의 필요한 모든 이벤트가 있다고 해도 과언이 아니다. 그런데 왜 커스텀 이벤트가 필요할까. 기본이벤트에서 제공하는 target 속성으로 이벤트를 발생시킨 객체의 정보를 가져올 수 있다고 하지만.. 그 객체의 속성이 아니라 다른 변수를 넘겨야 할 필요가 있다거나 하는 경우.. 기본 이벤트가 발생했을때 그 이벤트를 멈추고 새로운 이벤트로 발생시켜서 상위의 객체로 통보하고 싶다거나 하는 경우등. 커스텀 이벤트를 사용하게 되면 이것 저것 편리한 작업들을 많이 할 수 있게 된다. 이번 포스트에서는 커스텀 이벤트를 만드는 방법에 대해서 살펴보자. 커스텀 이벤트는 Event 를 확장해서 만들어진다. package csEvent { import flash.e.. 더보기
이벤트의 흐름 (Event Flow) 제어하기 이벤트는 캡쳐-타겟-버블의 흐름을 탄다고 이전 포스트 (2010/02/10 - [Flex/Event] - Flex 이벤트의 전파단계와 버블링 ) 에서 이야기 했었다. 이번에는 이전 포스트의 마지막에 예를 들었던 특정 Event Phase 에서만 이벤트를 받는 것과 이벤트의 흐름을 끊는 것에 대해서 알아보자. 언제나 그렇듯이 백문이 불여일견 이라고 동작하는걸 보는쪽이 이해가 확실히 빠르다. 캔버스 세개에 MouseEvent.CLICK 을 받을 수 있는 리스너가 붙어있고 이벤트가 들어오면 오른쪽 텍스트에어리어에 뿌려주도록 되어있다. useCapture All 체크 박스는 이전 예제와 동일하다. useCapture가 true 일때 이벤트가 이벤트가 어떻게 들어오는지 확인 하는 용도로 사용 하면 된다. redC.. 더보기
Flex 이벤트의 전파단계와 버블링 모든 이벤트는 type 과 target 속성을 가지고 있다. 이것은 어떤 이벤트가 발생했는지 어떤 객체가 이벤트를 발생시켰는지에 대한 정보이기 때문에 꼭 필요하다. EventDispatcher 가 이벤트를 Broadcase(전파) 하게 되면 Listener가 발생한 이벤트를 받게 된다. 이벤트는 두가지 형식으로 나눠진다.스테이지에 보이는 객체가 발생시키는 이벤트와 보이지 않는 객체가 발생시키는 이벤트이다. 스테이지에 보이는 객체가 발생시키는 이벤트는 이벤트 흐름(event flow)에 따라서 이동하게 된다. 여기서 나오는게 버블링이다. 보이지 않는 객체가 발생시키는 이벤트는 이벤트 흐름을 타지 않고 해당 객체에 직접 등록된 listener 에서만 캐치 할수 있다. Loader 같은 것이 .. 더보기
Flex와 BlazeDS, iBatis를 사용하기 위한 환경 설정하기 - 다운로드 BlazeDS는 adobe 에서 상용어플리케이션인 LCDS(LiveCycle Data Service)의 몇몇 기능을 제외하고 오픈소스로 풀어놓은 놈이다. 자바와 Flex 간의 소켓통신을 AMF 프로토콜을 이용해서 하게 되고 데이터를 받을때 RemoteClass를 세팅해서 별다른 변환 없이 자바쪽의 Bean을 Flex의 VO로 매핑 해주는등 일단 한번 맛을 들이고 나면.. json과 httpService의 조합은 더이상 처다보기도 싫을 정도로 편리하다. BlazeDS 첫번째 포스팅이니 사용할 수 있도록 다운받아서 설치 해보자 일단 환경은 톰켓 5.5 / jdk 1.5 이상 / 이클립스 가니메데 / Flex sdk 3.4 이상 / 플레시 플레이어 10 을 기준으로 한다. jdk는 1.5 이상에서만 Blaze.. 더보기
Flex Context Menu 에 원하는 메뉴 추가하기 Flex 에서 마우스 오른쪽 버튼을 누르면 나오는 컨텍스트 메뉴이다. 이놈은 플레시 플레이어가 기본으로 탑재 하고 있고 메뉴 자체를 삭제 할수가 없다. 따라서 플랙스에서 마우스 오른쪽 버튼을 눌렀을때 뭔가 행동을 해주고 싶다면 기본 컨텍스트 메뉴에 새로운 메뉴를 추가 해서 작업을 할수밖에 없는데 요걸 만들어 보도록 하자. 간단하기 때문에 한방에 소스 코드 가고 결과 화면 보고 중요한거만 설명하도록 한다. new ContextMenu() 로 새로운 메뉴를 생성하고 new ContextMenuItem('text Alert') 으로 메뉴에 들어갈 아이템을 만든다. 이후에 customItems 라는 배열 property에 만든 menuItem을 push 해주면 보이게 된다. this.container.conte.. 더보기
Flex Event 기본 설명 나는 디자이너 출신이기 때문에 프로그래밍에 대한 심오한 지식이 없다. 대학에서 윈도우 프로그래밍이나 자바, C 관련 언어에 대한 강의를 들었지만 디자인에 더 관심이 많았기 때문에 별로 주의깊에 듣지 않았었고... 그걸 지금 와서 엄청 후회하는 중이다. Flash2 때 처음 Flash를 접하게 되었고 3 버전부터 사용을 하다가.. 4,5 를 넘어오면서 actionscript가 timeline 보다 점점 벽으로 다가왔지만.. 그때까지도 할만 했다. 하지만 2.0이 나오면서 부터 기존에 onClick 형식으로 타임라인에 스크립트를 입력하던 방식에 한계가 오고 내입장에서는 듣도보도 못한 addEventListener 라는놈이 나오기 시작하면서.. "아.. 개발자의 영역으로 가버리는구나" 생각하고 디자인에만 매진.. 더보기
Flex 책 리뷰 및 추천 Q. 플렉스를 처음 배우려고 합니다. 책 추천좀.... 이런 질문이 커뮤니티들 마다 잊어먹을만 하면 한번씩 올라옵니다. 생각난김에 정리해봤습니다. 제가 봤던 책들만 정리 했습니다.. 더 많은 책들이 시중에 있겠지만.. 다들 비슷비슷하기 때문에.. 몇권 본 이후로는 안산거 같군요. 목록에 없는 책중에서 추천해주고 싶은 책 있으면 댓글 남겨주세요. 사서 보고 리뷰에 추가하도록 하겠습니다 원서는 제외 했구요 한글로 정식 출판된 책들로만 구성했습니다. 개인적인 견해 이므로 책 선택에 참고만 하세요. 예제로 배우는 Adobe 플렉스(개정판) 카테고리 컴퓨터/IT 지은이 옥상훈 (에이콘출판, 2008년) 상세보기 플렉스에 아주 처음 입문 하는 분들에게 추천하는 책입니다. 기초 구성요소들에 대한 설명이 잘 되있고.... 더보기
Flex, Flash 가비지 컬랙션 방법과 메모리 관리 이 글은 자꾸 까먹어서 정리겸 이해하고 있는 수준에 맞게 풀어서 쓴 글이다.. ------------------------- Flash나 Flex의 메모리는 개발자가 그냥 지울수가 없게 되어있다. 자바도 마찬가지고 VM기반의 언어에서는 메모리를 할당하고 해제 하는 과정이 시스템에서 알아서 하도록 되어있기 때문에.. 언제 메모리가 해제 되는지 개발자가 컨트롤 할수가 없다. 개발을 한 프로그램을 돌리기 시작했는데.. 메모리가 사용할수록 증가 한다면 그 프로그램은 결국에 가서는 시스템에 문제를 일으키고 종료될 것이다. 메모리 관리는 Garbage Collector (이하 GC) 라는 놈이 하게 되는데 말그대로 쓰레기를 수거하는 역할이다. 더이상 프로그램에서 사용하지 않는 객체들을 초기화하고 메모리를 시스템으로.. 더보기
플렉스 디버깅 <mx:TraceTarget /> 사용하기 플렉스는 쓸만한 수준의 디버깅툴을 제공한다. BreakPoint 를 사용해서도 작업을 할수 있고 Expression을 사용해서 특정 변수를 추적하는 것도 가능하다. 사용되는 함수를 전부 Step into 로 찾아들어갈 수도 있고 디버깅중에 BreakPoint를 추가할 수도 있다. 하지만 서버와 통신을 하는중에 발생하는 문제에 대해서는 정확하게 값이 넘어왔는데 플렉스쪽에서 처리를 잘못해서 데이터가 안나오는 것인지. 서버측의 문제인건지 명확하게 알기가 힘들다. 그래서 패킷을 감시하는 HttpWatch 라던지 서버쪽에 로그를 확인 한다던지 하게 되는데.. 플렉스 콘솔에서 바로 확인할수 있는 방법도 있다. 1. 이라고 어플리케이션 아래에 적어준다.. 2. 서버와 데이터통신을 시도한다.. 3. IDE 하단의 Vi.. 더보기
SharedObject 를 사용해서 로컬에 데이터 저장하기 SharedObject를 간단하게 이야기 하면 웹브라우저의 쿠키와 비슷하게 개발자가 원하는 데이터를 로컬에 저장하는 객체이다. 개별 유저에 커스터마이징된 화면이라던지, 이전에 방문했었는지의 여부 라던지.. 개발자가 필요에 의해서 데이터를 저장해야 하는 경우에 사용할 수 있다. 쿠키는 String 데이터만을 가지는데 반해 SharedObject 는 Array, Object 등 복합데이터를 저장할 수 있기 때문에 활용가능성이 무궁무진하다. (단 메서드는 저장할 수 없다 -ㅅ-) 기본 용량은 100K 이고 저장할 공간의 크기를 늘이거나 줄일 수 있다. 저장하는 데이터의 크기가 정해져 있다면 굳이 크게 할 필요는 없는거니 상황에 맞춰서 적용하면 되겠다. 100K를 넘는 용량을 지정하게 되면 사용자에게 저장하는 .. 더보기
FLEX RSL 사용해서 다이어트 하기 대부분의 RIA 사이트는 느리다. SWF 파일이 크고 왠지 플레시를 사용했으니 뭔가 가만히 있지 않고 움직여야 하지 않느냐 하는 요구 때문에 점점 파일은 커지고 로딩하는데 시간이 걸리게 된다. HTML과 달리 일단 로딩하면 페이지 이동이 없다는 것으로 클라이언트를 설득하면서 넘어가게 되는데 RSL을 사용해서 다이어트를 해보자 RSL은 Runtime Shared Library의 약자이다. 말그대로 미리 라이브러리를 로드하고 그것을 사용하는것이 아니고 Runtime에 공유 라이브러리를 사용하겠다는 것인데. 이게 처음에는 좀 뜻이 모호하다는 생각이 들었다. 단편적으로 이미지나 컴포넌트 같은것을 따로 빼내놓고 그것을 가져다가 사용한다는 것으로 알고 있었던 것이다. 하지만 RSL은 프레임웍도 런타임에 로드 할수 .. 더보기
페이지 정보 및 get 방식 파라미터 넘겨받기 - ExternalInterface 응용편 2 ExternalInterface 세번째 입니다. ExternalInterface가 뭔지 전혀 모르겠다 하시는 분은 2009/12/30 - [Flex/ExternalInterface] - ExternalInterface 기본기 이 포스트를 먼저 읽어 보고 오시면 됩니다. 자바스크립트에는 유용한 기능들이 많습니다. 가장 많이 사용하는 window 객체에는 브라우저의 정보 및 페이지 정보를 알아올수 있는 메서드들이 포함되어있는데 페이지 정보는 location에 들어있습니다. 그중 몇가지를 살펴보면 아래와 같습니다. window.location.href 주로 페이지 이동시에 많이 사용했던 속성인데 저 자체로는 현재 페이지의 정보를 가지고 있습니다. 아무사이트나 들어간 후에 주소창에 javascript:windo.. 더보기
윈도우 흔들기 Flex 버전 - ExternalInterFace 응용편 ExternalInterface가 뭐하는건지 잘 모르는 분은 2009/12/30 - [Flex/ExternalInterface] - ExternalInterface 기본기 이 글을 보고 오면 됩니다. ExternalInterface 가 자바스크립트의 함수를 실행시키기만 하는것이 아니고. 이전 글에 있듯이. Externalinterface.call("window.alert('아싸~')");처럼 자바스크립트 내장객체를 호출하거나 메서드를 실행하는것도 가능합니다. 이걸 이용해서 예전에 유행했던 윈도우 창 흔들기를 간단하게 구현해보도록 하겠습니다. 버튼을 클릭해보세요. 파일을 업로드 했습니다 ㅎㅎ 역시 아쉽게도 글쓰는 곳이 파일 업로드가 안되서 이 블로그를 흔드는것은 시범을 보여드릴수가 없고 어플리케이션 하나 .. 더보기
ExternalInterface 기본기 ExternalInterface는 swf 파일을 싸고 있는 컨테이너 html 의 자바스크립트와 통신하기 위한 인터페이스 입니다. ExternalInterface.call을 사용해서 html에 있는 자바스크립트 함수를 실행 시킬수 있고 ExternalInterface.callback을 사용해서 자바스크립트에서 SWF의 함수를 실행시킬수 있습니다. 이전 AS 2.0 에서는 fscommand()가 자바스크립트와의 통신에 사용되었는데 Player 9 버전 이후에는 Externalinterface를 사용하도록 권장하고 있습니다. html과 함께 사용되는 것이기 때문에 swf만 실행시키거나 stand alone player에서 실행시키면 디버그 창을 만날수있습니다. ExternalInterface가 중요한 이유가 .. 더보기
List 상하로 변경하기 2 - 스크롤포지션 세팅 Rinn`s Note - AS3 Dev : List 상하로 위치 변경하기 및 이벤트의 처리 by 퍼플린 | 2009/07/30 13:53 selectedIndex를 변경시켜주는 시점을 결정하기 위해서 list가 업데이트가 끝났다는 이벤트를 받아서 완료되면 인덱스를 수정해주는 것이다. 이처럼 Flex나 Flash는 몇몇 method를 제외하고는 비동기로 동작하기 때문에 데이터의 수정이나 삭제 입력시에 ... 위글에서 이어지는 포스트이니 이전글을 보고 오는것도 좋다. ------------------------------------------------------ 이전 글에서 리스트 내부의 아이템을 위로 옮기는 걸 했는데. 보면 알겠지만 뭔가 부족하다.. 리스트가 길어질경우 현제 옮기고 있는 아이템이 리스트.. 더보기
List 상하로 위치 변경하기 1 - 이벤트의 처리 리스트의 아이템을 선택해서 위치를 위로 올려주는 프로그램이다. private var arrData:Array; private var idx:int; private function init():void { arrData = []; arrData.push({label:"데이터1", data:"data1"}); arrData.push({label:"데이터2", data:"data2"}); arrData.push({label:"데이터3", data:"data3"}); list.dataProvider = arrData; } private function posUp():void { if(list.selectedItem && list.selectedIndex != 0) { idx= list.selectedIndex;.. 더보기
bitmapData getPixel 사용하기 package { import flash.display.Bitmap; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; [SWF(width="1000", height="1000", frameRate="24", backgroundColor="#FFFFFF")] public class bitmapDataHandle extends Sprite { private var container:Sprite; private var bitmap:Bitmap; private var loader:Loader; publ.. 더보기
플레시에서 개행문자의 처리 웹이나 디비에서 데이터를 가져온 텍스트의 경우 저장하는 방법에 따라서 개행이 /r/n 으로 넘어오는 경우가 있다. 이 경우 플레시는 한줄 개행이 아니고 두줄로 처리 해서 텍스트 필드의 라인간격이 두배로 나오는 경우가 생기게 되는데 이때는 넘어오는 텍스트에서 /r을 검색해서 삭제 해버리면 된다. 이럴때 사용하는 함수.. private function removeCarriageReturn(str:String):String { var myPattern:RegExp = /r/g; str = str.replace(myPattern,""); return str; } 함수이름이 내용보다 긴것 같지만 무슨 상관이랴~ /r 은 캐리지리턴이라부르고 입력커서를 라인의 맨 앞으로 보낸다 /n은 라인피드라고 해서 커서를 다음줄.. 더보기
MovieClip을 Bitmap 데이터로 저장하기 private function mcToBitmap(mc:MovieClip):Array { var bitmapData:BitmapData = new BitmapData(mc.width, mc.height,true); var bitmapArray:Array = []; var totalFrame:int = mc.scenes[0].numFrames; trace(totalFrame); for(var i:int=0; i 더보기
폰트 임베드시에 Unicode Range 설정하기 AS3 에서 폰트를 동적으로 embed 하기 위해서 폰트 SWF파일을 만들게 되는데 용량을 줄이기 위해서 필요한 설정이 unicodeRange이다. 숫자나 영문 한글 라틴 지원한다면 중국어 일어등 필요한 범위만을 embed하게 되므로 용량이 줄어들지만 범위 이외의 문자는 표시 되지 않기 때문에 그 범위를 벗어나는 텍스트는 절대 나오지 않는다 라는 확신이 있을때 지정해서 사용하는편이 좋다. 괜히 개발 해놨다가 글이 안올라가는거 같아요 이런 소리 듣고 나면 버그가 있는줄 알고 검내 찾다가.. 범위 이외라서 올라간 글이 단지 안보이는 것뿐이라는 것을 알고나면 허탈해질수도 있다. package { import flash.display.Sprite; public class Default extends Sprite.. 더보기
폰트 동적 추가 하기. 폰트 동적 추가하기 fontKR.swf 에 font Class가 들어있고 linkage 네임은 font_kr로 되어있다. package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLRequest; import flash.text.AntiAliasType; import flash.text.Font; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class FontLoadTest extends Sprite { private va.. 더보기