scaleform.minarto.com

ListBinding 클래스 - 0 본문

Communication

ListBinding 클래스 - 0

미나토 2013. 1. 22. 17:18




1. ListBinding



이번에 보여드릴 클래스는 ListBinding 이라는 클래스입니다


as2 - http://code.google.com/p/minarto-scaleform4/source/browse/trunk/as2/src/com/minarto/data/ListBinding.as

as3 - http://code.google.com/p/minarto-scaleform4/source/browse/trunk/as3/src/com/minarto/data/ListBinding.as


위의 경로에 가면 확인하실 수 있습니다.



전에도 언급했지만, 제가 공개하고 있는 코드는 제가 회사에서 사용하고 있는 코드와 다릅니다.


일단 테스트가 되어있지 않습니다.

플래시 빌더(as3버전)나 플래시 디벨롭(as2버전) 에서 에디터 상의 문법 오류만 없으면 올리고 있다고 보시면 됩니다.


물론 가능한 버그를 수정하려고 하지만, 회사 일만큼의 에너지를 쏟을 수 없음을 이해해 주시기 바랍니다.


제가 코드를 공개하는 목적은 정보의 공유도 있지만, 블로그의 상의 이론에 대한 보조 역할을 위함입니다



전에 잠시 언급했었던 리스트 형태의 데이터에 대한 바인딩 클래스입니다.


물론 기존의 Binding 만으로도 리스트 데이터를 바인딩 할 수는 있습니다...


하지만 개발이나 성능상의 효율성을 위해서 나눴다는 것을 기억하시기 바랍니다.

(기초적인 이론은 같다는 얘기입니다)





2. 클라이언트와의 통신을 하지 않는다?



이 클래스는 클라이언트와 직접 통신을 하지 않습니다.



코드를 보시면 아시겠지만, Binding 클래스와 같이



public static function init():void {
	if(ExternalInterface.available && Extensions.isScaleform)	ExternalInterface.call("Binding", _instance);
	trace("Binding.init");
}



이런 식으로 클라이언트 측에 통신 객체를 넘기지 않습니다.


이 클래스는 클라이언트와의 데이터 통신이 목적이 아닌, 말 그대로 리스트 데이터의 바인딩 만을 목적으로 한다고 보시면 됩니다.



그 통신은 다른 통신 객체를 이용합니다. (물론 활용시에는 ListBinding.action 메소드를 이용합니다만 내부적으로 다른 통신 객체를 이용한다는 뜻입니다)


바로 브릿지 객체입니다.





3. 클라이언트와 UI 간의 연결 관계



이런 식으로 통신 객체와 바인딩 객체를 나눈 이유는, 앞선 포스팅에서도 언급했듯이 클라이언트에서 전해준 데이터를 그대로 쓰지 않는 경우가 많기 때문입니다.



같은 이유로 이번 포스팅과 클래스는 범용적이지 않음을 인지해주셔야 합니다.


이번 포스팅은 참고의 용도로 생각해주시면 좋겠습니다.



그래서 이번에는 브릿지 라는 객체를 하나 둡니다.



이런 식입니다.



클라이언트에서 UI쪽으로 통신


클라이언트 > 브릿지 객체 > 브릿지 객체가 데이터 가공 > 리스트 바인딩 객체 > UI



UI 에서 클라이언트쪽으로 통신


UI > 리스트 바인딩 객체 > 브릿지 객체 > 브릿지 객체가 데이터 가공 > 클라이언트




바로, 


UI - 리스트 바인딩 객체 - 브릿지 객체 - 클라이언트


이런 연결 고리의 형태를 가진다고 보시면 됩니다.




포스팅이 길어지니 다음 포스팅으로~~