본문 바로가기

Flex3

플렉스 팝업을 띄우고 데이터 교환하기 플렉스에서 팝업에 관해서 가장 많이 나오는 질문중 하나가 팝업을 띄울때 어플리케이션의 데이터를 보내고 싶다거나 팝업이 닫힐때 데이터를 받아서 특정 함수를 실행시키고 싶다거나 하는 것이다. 이전에 쓴글 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. 서버를 .. 더보기
Flex Event 기본 설명 나는 디자이너 출신이기 때문에 프로그래밍에 대한 심오한 지식이 없다. 대학에서 윈도우 프로그래밍이나 자바, C 관련 언어에 대한 강의를 들었지만 디자인에 더 관심이 많았기 때문에 별로 주의깊에 듣지 않았었고... 그걸 지금 와서 엄청 후회하는 중이다. Flash2 때 처음 Flash를 접하게 되었고 3 버전부터 사용을 하다가.. 4,5 를 넘어오면서 actionscript가 timeline 보다 점점 벽으로 다가왔지만.. 그때까지도 할만 했다. 하지만 2.0이 나오면서 부터 기존에 onClick 형식으로 타임라인에 스크립트를 입력하던 방식에 한계가 오고 내입장에서는 듣도보도 못한 addEventListener 라는놈이 나오기 시작하면서.. "아.. 개발자의 영역으로 가버리는구나" 생각하고 디자인에만 매진.. 더보기
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가 중요한 이유가 .. 더보기