'ClipboardTransferMode'에 해당되는 글 1건

  1. 2008.12.26 Clipboard의 전송모드
클립보드는 기본적으로 3가지 경우에서 사용이 된다.
1 동일 AIR 어플리케이션 안에서 데이터를 전송
2 2개 이상의 AIR 어플리케이션 사이에서 데이터를 전송하는 경우
3 AIR 어플리케이션과 시스템 또는 다른 응용프로그램 사이에서 데이터를 전송하는 경우


위와 같은 경우에서 2번 째와 3번 째의 경우에는 데이터의 복사본이 필요하다. 가령 어떠한 텍스트 내용을 AIR에서 워드나 한글 같은 경우 직접 데이터를 읽을 수 없기 때문에 데이터 복사본과 레퍼런스를 함께 저장하여야 한다.

setData()에서 3번째 파라미터인 직렬화(serializable)에 의해 자동으로 직렬화 저장(true)으로 설정된다. 값이 true이면 복사본과 레퍼런스가 저장되고 false이면 레퍼런스만 저장된다. 이 경우에는 데이터를 직렬화 하지 않고 복사하지도 않는 경우에서만 사용하여야 한다. 즉 단일 AIR 어플리케이션  내부에서만 사용하면 된다.

getData()에서는 원하는 방식으로 데이터를 받을 수 있다. 이 경우에는 두번 째 파라미터인 transferMode를 설정하여야 한다. 지원되는 전송 모드에는 4가지가 있으며 이들은 ClipboardTransferMode에 상수로 설정되어있다.

ClipboardTransferMode.CLONE_ONLY 
사용 가능한 경우 복사본이 반환된다. 복사본을 사용할 수 없을시에는 null이 반환

ClipboardTransferMode.CLONE_PREFERRED  
사용 가능한 경우 복사본이 반환된다. 복사본을 사용할 수 없을시에는 레퍼런스를 반환

ClipboardTransferMode.ORIGINAL_ONLY  
사용 가능한 경우 원본 데이터에 대한 레퍼런스를 반환, 원본 레퍼런스를 사용 할 수 없을시에는 null을 반환

ClipboardTransferMode.ORIGINAL_PREFERRED 
사용 가능한 경우 원본 데이터에 대한 레퍼런스를 반환, 원본 레퍼런스를 사용 할 수 없을시에는 복사본을 반환 (기본 설정 값)

참고) 전송 모드는 클립보드에 들어 있는 객체에 액세스할 때 참조를 반환할 것인지 아니면 복사본을 반환할 것인지에 대한 힌트를 제공한다

참고) 직렬화(serializable)란 객체의 내용을 바이트 단위로 자동 변환하여 저장/복원하거나 네트워크 등 전송 할 수 있도록 지원하는 기능이다. 단 멤버변수의 메모리만으로 구성되므로 메서드나 생성자는 직렬화에서 제외 된다.
이는 자바 1.1에서 도입 되었는데 원격통신이나 강태정보의 저장시 직렬화된 데이터를 사용하면 편하기 때문이고 AS3는 자바의 영향을 많이 받은 언어이므로 자바의 serializable를 그대로 지원한다.

Posted by 버터백통