주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

Proxy 로 Data 만들기

SOLIDH | 2009.05.24 03:40:36 댓글: 0 조회: 2161 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759473

Proxy 를 사용할 일이 그닥 많지는 않지만, 가끔 사용하면 매우 편리해지는 경우가 있습니다.

오늘은 그 예를 들어보죠.

   

일단 새로운 Proxy 상속 Class 를 만들어줍니다. event listener 를 걸수 있게 하기 위해서 IEventDispatcher Interface 를 추가해 줍니다.



자… 이렇게 EventDispatch 기능을 가진 Proxy 객체가 만들어졌습니다. 계속 진행해보죠.





일단 eventDispatcher 의 구현을 해줘야겠죠.



그리고, 기본적인 변수의 입출력을 확인하기 위해서 setProperty 와 getProperty 를 구현해 줍니다. flash_proxy namespace 를 사용하기 위해서 상단에 use namespace 선언을 해두었습니다.




테스트를 위해서 간단한 코딩을 해줍니다.




테스트를 해보면 이렇게 getProperty 와 setProperty 에 넣어둔 trace 가 정상적으로 작동하게 됩니다.



자… 이제 Event 를 테스트 해보기 위한 간단한 Test Data 를 만들어봅시다.




대충 코딩해서 만들어줍니다. Event 에 변경된 데이터의 이름과 값을 전달받게 해줍니다.



그리고, setProperty 에 dispatchEvent 를 사용해서 이벤트를 걸어주고




테스트 Class 에서 이벤트를 걸어봅니다.



그러면 이렇게 setProperty 가 호출되면서 동시에 dispatchEvent 가 작동하게 됩니다.

   

자… 값이 변경될때마다 Event 를 통해서 보고를 받을수 있는 데이터 형식이 만들어졌군요. 자… 좀 더 만들어볼까요.



Property 를 대리할 Array 객체를 만들어주고, 해당 Array 에 대한 구현을 해줍니다.



자 값이 정상적으로 입력되고, 출력되는지 테스트 해봅시다.



보는바와 같이 myname 과 age 는 정상적으로 저장되었기 때문에 출력이 되지만, sex 는 저장된 적이 없기 때문에 undefined 로 출력되게 됩니다.

   

자… 좀 더 발전시켜서 동적 변수를 삭제하는 delete 기능을 포함시켜 봅시다.




이렇게 deleteProperty 를 상속 구현해 줍니다.

자… 이렇게 다시 테스트를 해봅니다.

 

보는바와 같이 myname 이 undefined 로 뜨는것을 확인할 수 있습니다.


참 쉽죠?


자 그럼 data 형식의 꽃일 loop 를 구현하면 어떻게 될까요?



유감스럽게도 이렇게 에러가 뜨게 되는데요. 자… 에러문에서 정의하라는 nextNameIndex 를 구현하기 위해서 nameMap 을 만들어보도록 합시다.




nameMap 을 대리할 names 변수를 만들고, nameMap 에 대한 구현을 해주도록 합니다. 여기서 nextName 은 for in 처럼 name 을 통한 접근에 관여하게 되고, nextValue 는 for each 처럼 value 에 대한 loop 접근에 관여하게 됩니다. (ArrayEx 는 개인 라이브러리 입니다…;;; 코딩하기 귀찮아서 사용한거니 그러려니 생각하세요.)




자 다시 테스트를 해보면



이 렇게 정상적으로 loop 가 도는것을 확인할 수 있습니다. 뭐 완전 Array 처럼 length 나 push, id 로 움직이는 것도 구현을 한다면 구현할 수 있겠죠. (귀찮긴 하겠지만…) 그리고, Proxy 의 멤버를 보면 알 수 있겠지만, E4X 의 .. 도 구현할 수 있게 되어있습니다. 만들기에 따라서 얼마든지 강력한 자기만의 데이터 형식을 만들수 있습니다.

   

뭐… ㅡ ㄴ ㅡ;;; 걍 Vector 나 Array, Dictionary 를 사용하면 되겠지만, 이런것도 만들면 재미있겠죠. 용도에 따라서는 도움이 많이 될 수 있겠구요.


출처: ssen님레시피
http://ssen.name/zb/2664

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 22 )
download1.png | 125.9KB / 0 Download
downloadCAU6Z0K7.png | 195.7KB / 0 Download
download.png | 100.7KB / 0 Download
download3.png | 12.7KB / 0 Download
download4.png | 10.8KB / 0 Download
download5.png | 35.4KB / 0 Download
download6.png | 91.3KB / 0 Download
download7.png | 30.8KB / 0 Download
download8.png | 108.5KB / 0 Download
download9.png | 11.1KB / 0 Download
download10.png | 116.6KB / 0 Download
download11.png | 115.6KB / 0 Download
download12.png | 10.5KB / 0 Download
download13.png | 111.1KB / 0 Download
download14.png | 94.8KB / 0 Download
download15.png | 6.0KB / 0 Download
download16.png | 271.1KB / 0 Download
download17.png | 125.7KB / 0 Download
download18.png | 44.5KB / 0 Download
download19.png | 201.7KB / 0 Download
download20.png | 121.8KB / 0 Download
download21.png | 7.5KB / 0 Download
IP: ♡.220.♡.237
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12022
관리자
2003-09-20
11569
관리자
2003-09-20
20725
지구인
2010-08-27
19501
지구인
2009-09-07
13816
SOLIDH
2010-01-29
15785
엔죠라이프
2004-10-07
16866
SOLIDH
2009-05-28
3086
SOLIDH
2009-05-28
2411
SOLIDH
2009-05-28
2510
SOLIDH
2009-05-28
2438
SOLIDH
2009-05-28
2410
SOLIDH
2009-05-28
2780
SOLIDH
2009-05-28
2621
SOLIDH
2009-05-27
2327
SOLIDH
2009-05-27
2757
SOLIDH
2009-05-27
2543
SOLIDH
2009-05-26
1615
SOLIDH
2009-05-26
3518
SOLIDH
2009-05-26
2691
SOLIDH
2009-05-26
3130
SOLIDH
2009-05-26
2453
SOLIDH
2009-05-26
3184
이보시오
2009-05-25
4580
SOLIDH
2009-05-24
3398
SOLIDH
2009-05-24
2161
SOLIDH
2009-05-24
1723
SOLIDH
2009-05-24
3933
모이자 모바일