패키지flash.desktop
클래스public class Clipboard
상속Clipboard Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

Clipboard 클래스는 클립보드를 통해 데이터와 객체를 전송할 수 있는 컨테이너를 제공합니다. AIR에서 Clipboard 클래스는 드래그 앤 드롭 작업에도 사용됩니다. 운영 체제 클립보드는 static generalClipboard 속성을 통해 액세스할 수 있습니다.

Clipboard 객체는 같은 정보를 여러 형식으로 포함할 수 있습니다. 정보를 여러 형식으로 제공하면 다른 응용 프로그램에서 해당 정보를 사용할 수 있을 가능성이 높아집니다. setData() 또는 setDataHandler() 메서드를 사용하여 Clipboard 객체에 데이터를 추가합니다.

표준 형식은 다음과 같습니다.

표준 포맷의 이름에 대한 이러한 상수는 ClipboardFormats 클래스에서 정의됩니다.

Flash Player 또는 AIR 응용 프로그램과 운영 체제 사이의 전송이 발생하면 표준 포맷이 ActionScript 데이터 유형과 기본 클립보드 사이에서 자동으로 변환됩니다.

응용 프로그램에서 정의한 포맷을 사용하여 ActionScript 객체를 Clipboard 객체에 추가할 수 있습니다. 객체가 직렬화 가능하면 객체의 참조 및 복제본을 모두 사용할 수 있습니다. 객체 참조는 원본 응용 프로그램 내에서만 유효합니다.

특정 형식으로 전송할 정보를 변환하는 계산 비용이 높은 경우 변환을 수행하는 함수의 이름을 제공할 수 있습니다. 이 함수는 수신 구성 요소 또는 응용 프로그램에서 해당 형식을 읽을 때만 호출됩니다. setDataHandler() 메서드를 사용하여 Clipboard 객체에 지연 렌더링 함수를 추가합니다.

AIR 응용 프로그램 참고 사항: HTML 드래그 앤 드롭 및 복사하여 붙여넣기 이벤트에 대해 전달된 이벤트 객체에서 참조하는 클립보드 객체의 유형은 AIR Clipboard 객체의 유형과 다릅니다. JavaScript 클립보드 객체에 대한 자세한 내용은 AIR 개발자 안내서를 참조하십시오.

예제 보기

참고 사항

flash.desktop.NativeDragManager
flash.desktop.ClipboardFormats
flash.desktop.ClipboardTransferMode


Public 속성
 속성다음에 의해 정의됨
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  formats : Array
[읽기 전용] 이 Clipboard 객체에 사용 가능한 데이터 형식의 이름을 포함하는 문자열의 배열입니다.
Clipboard
  generalClipboard : Clipboard
[정적] [읽기 전용] 운영 체제 클립보드입니다.
Clipboard
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
Public 메서드
 메서드다음에 의해 정의됨
  
빈 Clipboard 객체를 만듭니다.
Clipboard
  
이 Clipboard 객체에서 데이터 표현을 모두 삭제합니다.
Clipboard
  
지정된 형식에 대한 데이터 표현을 삭제합니다.
Clipboard
  
getData(format:String, transferMode:String = "originalPreferred"):Object
지정된 형식의 데이터가 있을 경우 클립보드 데이터를 가져옵니다.
Clipboard
  
지정된 형식의 데이터가 이 Clipboard 객체에 있는지 여부를 확인합니다.
Clipboard
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
  
setData(format:String, data:Object, serializable:Boolean = true):Boolean
지정된 데이터 형식으로 전송할 정보의 표현을 추가합니다.
Clipboard
  
setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean
필요에 따라 지정된 형식에 대한 데이터를 작성하는 핸들러 함수에 참조를 추가합니다.
Clipboard
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 정보
formats속성
formats:Array  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

이 Clipboard 객체에 사용 가능한 데이터 형식의 이름을 포함하는 문자열의 배열입니다.

표준 형식의 이름에 대한 문자열 상수는 ClipboardFormats 클래스에서 정의됩니다. 응용 프로그램에서 정의한 다른 문자열도 형식 이름으로 사용되어 데이터를 객체로 전송할 수 있습니다.



구현
    public function get formats():Array

참고 사항


예제
다음 예제는 시스템 클립보드의 formats 배열을 읽습니다.
var availableFormats:Array = Clipboard.generalClipboard.formats;
generalClipboard속성 
generalClipboard:Clipboard  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

운영 체제 클립보드입니다.

시스템 클립보드에 붙여넣은 모든 데이터는 다른 응용 프로그램에서 사용할 수 있습니다. 웹 브라우저에서 실행 중인 보안되지 않은 원격 코드가 여기에 포함될 수 있습니다.

참고: Flash Player 10 응용 프로그램에서 클립보드의 붙여넣기 작업을 처음 실행하는 경우 사용자 이벤트(예: 붙어넣기 명령에 대한 키보드 단축키 또는 컨텍스트 메뉴에서 붙여넣기 명령을 마우스로 클릭)가 필요합니다. Clipboard.getData()는 InteractiveObject가 수신했고 붙여넣기 이벤트를 실행하는 경우에만 클립보드의 내용을 반환합니다. 다른 상황에서는 Clipboard.getData() 호출이 제대로 수행되지 않습니다. AIR에서는 응용 프로그램 샌드박스 외부 내용에도 같은 제한 사항이 적용됩니다.

generalClipboard 객체는 자동으로 생성됩니다. 이 속성에 Clipboard의 또 다른 인스턴스를 할당할 수 없습니다. 대신 getData()setData() 메서드를 사용하여 기존 객체에서 데이터를 읽고 씁니다.

모든 형식으로 된 이전 데이터가 지워지지 않도록 클립보드에 새 데이터를 쓰기 전에 항상 클립보드를 지워야 합니다.



구현
    public static function get generalClipboard():Clipboard

예제
운영 체제 클립보드에 기록하려면:
import flash.desktop.ClipboardFormats;
 
 var copy:String = "A string to copy to the system clipboard.";
 Clipboard.generalClipboard.clear();
 Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, copy);
운영 체제 클립보드에서 읽어 오려면:
import flash.desktop.ClipboardFormats;
 
 var pasteData:String  = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
생성자 정보
Clipboard()생성자
public function Clipboard()

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

빈 Clipboard 객체를 만듭니다.


오류
IllegalOperationError — Flash Player에서는 운영 체제 클립보드만 사용되어야 하므로 new Clipboard()는 Flash Player에서 지원되지 않습니다. 운영 체제 클립보드를 사용하는 복사하여 붙여넣기 작업의 경우 새 클립보드 객체를 만드는 대신 Clipboard.generalClipboard 객체를 사용하십시오. AIR 응용 프로그램에서 오류는 발생하지 않습니다.

참고 사항


예제

다음 예제는 NativeDragManager 클래스와 함께 사용할 새 클립보드를 만듭니다.

참고: 운영 체제 클립보드를 사용하는 복사하여 붙여넣기 작업의 경우 새 클립보드를 만드는 대신 Clipboard.generalClipboard 객체를 사용하십시오.

import flash.desktop.Clipboard;
 
 var clipboard:Clipboard = new Clipboard();
메서드 정보
clear()메서드
public function clear():void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

이 Clipboard 객체에서 데이터 표현을 모두 삭제합니다.


예제

다음 예제는 시스템 클립보드를 지웁니다.
Clipboard.generalClipboard.clear();
clearData()메서드 
public function clearData(format:String):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

지정된 형식에 대한 데이터 표현을 삭제합니다.

매개 변수

format:String — 제거할 데이터 형식입니다.


예제

다음 예는 시스템 클립보드에서 ClipboardFormats.TEXT_FORMAT 형식의 모든 데이터를 삭제합니다.
import flash.desktop.ClipboardFormats;
 
 Clipboard.generalClipboard.clearData(ClipboardFormats.TEXT_FORMAT);
getData()메서드 
public function getData(format:String, transferMode:String = "originalPreferred"):Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

지정된 형식의 데이터가 있을 경우 클립보드 데이터를 가져옵니다. Flash Player에서는 getData()를 사용하려면 키 누르기나 마우스 클릭과 같은 사용자 이벤트가 필요합니다. 사용자가 시작한 붙여넣기 이벤트 핸들러 안에서 getData()를 호출합니다. AIR에서는 이 제한이 응용 프로그램 보안 샌드박스 외부의 내용에만 적용됩니다.

표준 데이터 형식에 액세스할 때는 데이터가 해당 Flash Player 또는 AIR 유형의 새 객체로 반환됩니다.

응용 프로그램에서 정의된 형식에 액세스할 때는 transferMode 매개 변수의 값이 원본 객체에 대한 참조가 반환되는지 또는 원본 객체의 직렬화된 복사본이 포함된 익명 객체가 반환되는지를 결정합니다. originalPreferred 또는 clonePreferred 모드가 지정된 경우 원하는 버전을 사용할 수 없으면 Flash Player 또는 AIR에서 대체 버전을 반환합니다. originalOnly 또는 cloneOnly 모드가 지정되어 있으면 요청된 버전을 사용할 수 없는 경우 Flash Player 또는 AIR에서 null을 반환합니다.

매개 변수

format:String — 반환할 데이터 형식입니다. 형식 문자열은 ClipboardFormats 클래스에 정의된 표준 이름 중 하나 또는 응용 프로그램에서 정의된 이름을 포함할 수 있습니다.
 
transferMode:String (default = "originalPreferred") — 응용 프로그램에서 정의된 데이터 형식에 액세스할 때 참조가 반환되는지 또는 직렬화된 복사본이 반환되는지를 지정합니다. 값은 ClipboardTransferMode 클래스에 정의된 이름 중 하나여야 합니다. 표준 데이터 형식에 대해서는 이 값이 무시되며 복사본이 항상 반환됩니다.

반환값
Object — 데이터 형식에 해당하는 유형의 객체입니다.

오류
Error transferMode는 ClipboardTransferMode 클래스에 정의된 이름 중 하나가 아닙니다.
 
IllegalOperationError — 요청된 Clipboard 객체가 더 이상 범위에 없습니다(AIR만 해당).
 
SecurityError — 클립보드에 대한 읽기 또는 쓰기가 이 컨텍스트에서 허용되지 않습니다. Flash Player에서는 키 누르기 또는 마우스 클릭과 같은 사용자 이벤트를 처리하는 동안만 이 메서드를 성공적으로 호출할 수 있습니다. AIR에서는 이 제한이 응용 프로그램 보안 샌드박스 외부의 내용에만 적용됩니다.

참고 사항


예제

다음 예제는 가능한 경우 시스템 클립보드의 텍스트를 읽습니다.
import flash.desktop.ClipboardFormats;

 var pasteData:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
hasFormat()메서드 
public function hasFormat(format:String):Boolean

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

지정된 형식의 데이터가 이 Clipboard 객체에 있는지 여부를 확인합니다.

표준 형식 이름을 참조하려면 ClipboardFormats 클래스에 있는 상수를 사용합니다.

매개 변수

format:String — 확인할 형식 유형입니다.

반환값
Boolean — 지정된 형식의 데이터가 있을 경우 true입니다.

오류
IllegalOperationError — 요청된 Clipboard 객체가 더 이상 범위에 없습니다(AIR만 해당).
 
SecurityError — 클립보드에 대한 읽기 또는 쓰기가 이 컨텍스트에서 허용되지 않습니다.

참고 사항


예제

다음 예제에서는 시스템 클립보드를 테스트하여 텍스트 서식 데이터를 사용할 수 있는지를 확인합니다.
if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){
    //do something 
}
setData()메서드 
public function setData(format:String, data:Object, serializable:Boolean = true):Boolean

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

지정된 데이터 형식으로 전송할 정보의 표현을 추가합니다. Flash Player에서는 setData()를 사용하려면 키 누르기나 마우스 클릭과 같은 사용자 이벤트가 필요합니다. AIR에서는 이 제한이 응용 프로그램 보안 샌드박스 외부의 내용에만 적용됩니다.

같은 정보의 서로 다른 표현을 서로 다른 형식으로 클립보드에 추가할 수 있습니다. 그러면 다른 구성 요소나 응용 프로그램이 사용 가능한 데이터를 더욱 잘 활용할 수 있습니다. 예를 들어 AIR 응용 프로그램에서는 이미지를 이미지 편집 응용 프로그램에서 사용할 비트맵 데이터, 다른 AIR 응용 프로그램에서 사용할 Bitmap 객체, 기본 파일 시스템에 전송할 인코딩된 PNG 파일 등으로 추가할 수 있습니다.

데이터 매개 변수는 지정된 형식에 대해 적절한 데이터 유형이어야 합니다.

형식유형설명
ClipboardFormats.TEXT_FORMAT 문자열 문자열 데이터
ClipboardFormats.HTML_FORMAT 문자열 HTML 문자열 데이터
ClipboardFormats.URL_FORMAT 문자열 URL 문자열(AIR만 해당)
ClipboardFormats.RICH_TEXT_FORMAT ByteArray 서식 있는 형식의 데이터
ClipboardFormats.BITMAP_FORMAT BitmapData 비트맵 데이터 (AIR만 해당)
ClipboardFormats.FILE_LIST_FORMAT File 배열 파일의 배열 (AIR만 해당)
사용자 정의 형식 이름모두객체 참조 및 직렬화된 복제본

사용자 정의 형식 이름은 "air:" 또는 "flash:"로 시작될 수 없습니다. AIR 응용 프로그램의 경우 사용자 정의 형식을 사용할 때 이름이 충돌하지 않도록 응용 프로그램 ID 또는 패키지 이름을 형식의 접두어로 사용하는 것이 좋습니다(예: "com.example.applicationName.dataPacket").

Flash Player 또는 AIR 응용 프로그램 내에서 또는 Flash Player 또는 AIR 응용 프로그램 간에 전송할 때는 serializable 매개 변수가 참조 및 복사본을 모두 사용할 수 있는지 아니면 객체에 대한 참조만 사용할 수 있는지를 결정합니다. 데이터 객체의 참조 및 복사본을 모두 사용할 수 있도록 하려면 serializabletrue로 설정하십시오. 객체 참조만 사용할 수 있도록 하려면 serializablefalse로 설정하십시오. 객체 참조는 현재 응용 프로그램 내에서만 유효합니다. 따라서 serializablefalse로 설정하면 다른 Flash Player 또는 AIR 응용 프로그램에서도 해당 형식의 데이터를 사용할 수 없습니다. 구성 요소에서는 해당 형식의 데이터에 액세스할 때 적절한 클립보드 전송 모드를 설정하여 객체의 참조 또는 복사본을 가져올 수 있습니다.

참고: 지원되는 응용 프로그램 외부로 데이터를 붙여넣거나 드래그(AIR만 해당)할 때는 표준 형식이 항상 기본 형식으로 변환됩니다. 따라서 serializable 매개 변수의 값은 Flash Player 또는 AIR 응용 프로그램이 아닌 응용 프로그램으로 전달되는 데이터를 표준 형식으로 사용할 수 있는지 여부에 영향을 주지 않습니다.

한 형식에 대해 데이터의 렌더링을 지연하려면 setDataHandler() 메서드를 대신 사용하십시오. setData()setDataHandler() 메서드를 모두 사용하여 같은 형식 이름으로 데이터 표현을 추가하는 경우에는 핸들러 함수가 호출되지 않습니다.

매개 변수

format:String — 데이터의 형식입니다.
 
data:Object — 추가할 정보입니다.
 
serializable:Boolean (default = true) — 직렬화(및 비직렬화)할 수 있는 객체에 대해 true를 지정합니다.

반환값
Boolean — 데이터가 제대로 설정되었으면 true이고, 그렇지 않으면 false입니다. Flash Player에서는 format이 ClipboardFormats의 지원되지 않는 멤버일 경우 false를 반환합니다. Flash Player는 ClipboardFormats.URL_FORMAT, ClipboardFormats.FILE_LIST_FORMAT 또는 ClipboardFormats.BITMAP_FORMAT을 지원하지 않습니다.

오류
IllegalOperationError — 요청된 Clipboard 객체가 더 이상 범위에 없습니다(AIR만 해당).
 
SecurityError — 클립보드에 대한 읽기 또는 쓰기가 이 컨텍스트에서 허용되지 않습니다. Flash Player에서는 키 누르기 또는 마우스 클릭과 같은 사용자 이벤트를 처리하는 동안만 이 메서드를 성공적으로 호출할 수 있습니다. AIR에서는 이 제한이 응용 프로그램 보안 샌드박스 외부의 내용에만 적용됩니다.
 
TypeError format 또는 datanull입니다.

참고 사항


예제

다음 예제에서는 내용을 시스템 클립보드에 추가하면서 텍스트 및 HTML 형식 모두를 지원합니다.
import flash.desktop.ClipboardFormats;
 
 var htmlString:String = "<html><body>Body content</body></html>";
 Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, urlString);
 Clipboard.generalClipboard.setData(ClipboardFormats.HTML_FORMAT, urlString);
setDataHandler()메서드 
public function setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.0

필요에 따라 지정된 형식에 대한 데이터를 작성하는 핸들러 함수에 참조를 추가합니다. 이 메서드를 사용하여 데이터가 실제로 액세스될 때까지 데이터의 생성 또는 렌더링을 지연합니다. Flash Player에서는 setDataHandler()를 사용하려면 키 누르기나 마우스 클릭과 같은 사용자 이벤트가 필요합니다. AIR에서는 이 제한이 응용 프로그램 보안 샌드박스 외부의 내용에만 적용됩니다.

핸들러 함수는 지정된 형식에 대해 적절한 데이터 유형을 반환해야 합니다.

형식반환 유형
ClipboardFormats.TEXT_FORMAT 문자열
ClipboardFormats.HTML_FORMAT 문자열
ClipboardFormats.URL_FORMAT 문자열 (AIR만 해당)
ClipboardFormats.RICH_TEXT_FORMAT ByteArray
ClipboardFormats.BITMAP_FORMAT BitmapData(AIR만 해당)
ClipboardFormats.FILE_LIST_FORMAT File 배열(AIR만 해당)
사용자 정의 형식 이름void가 아님

핸들러 함수는 지정된 형식의 데이터를 읽을 때만 호출됩니다. 응용 프로그램에서 데이터 보호 조치를 취하지 않는 한, 기본 데이터가 변경되어 핸들러가 추가되었을 때와 데이터를 읽을 때 서로 다를 수 있습니다. 클립보드에서 핸들러 함수로 표시되는 데이터를 두 번 이상 읽을 때 발생하는 비헤이비어는 보장할 수 없습니다. Flash Player 또는 AIR은 첫 번째 함수에서 생성된 데이터를 반환하거나 해당 함수를 다시 호출할 수 있습니다. 둘 모두 의존할 수 있는 비헤이비어는 아닙니다.

이 Clipboard 객체에 데이터를 직접 추가하려면 setData() 메서드를 대신 사용하십시오. setData()setDataHandler() 메서드를 모두 같은 포맷 이름으로 호출하는 경우에는 핸들러 함수가 호출되지 않습니다.

매개 변수

format:String — 전송할 데이터를 반환하는 함수입니다.
 
handler:Function — 데이터의 형식입니다.
 
serializable:Boolean (default = true)handler에 의해 반환되는 객체를 직렬화(및 비직렬화)할 수 있으면 true를 지정합니다.

반환값
Boolean — 핸들러가 설정되었으면 true이고, 그렇지 않으면 false입니다.

오류
TypeError format 또는 handlernull입니다.
 
IllegalOperationError — 요청된 Clipboard 객체가 더 이상 범위에 없습니다(AIR만 해당).
 
SecurityError — 클립보드에 대한 읽기 또는 쓰기가 이 컨텍스트에서 허용되지 않습니다. Flash Player에서는 키 누르기 또는 마우스 클릭과 같은 사용자 이벤트를 처리하는 동안만 이 메서드를 성공적으로 호출할 수 있습니다. AIR에서는 이 제한이 응용 프로그램 보안 샌드박스 외부의 내용에만 적용됩니다.

참고 사항


예제

다음 예제에서는 지연된 데이터 함수를 통해 시스템 클립보드에 난수를 추가합니다.
import flash.desktop.ClipboardFormats;
 
 Clipboard.generalClipboard.setDataHandler(ClipboardFormats.TEXT_FORMAT, randomNumberGenerator);

 public function randomNumberGenerator():String{
     return Math.random().toString();
 }
예제 예제 사용 방법
ClipboardExample.as

다음 예제는 ClipboardExample 클래스를 사용하여 특정 변수의 문자열을 시스템 클립보드를 통해 다른 변수에 복사합니다. 이는 다음 단계로 이루어집니다.
  1. 데이터(이 경우 문자열)를 Clipboard.generalClipboard에 작성합니다.
  2. Clipboard.generalClipboard에서 클립보드 내용을 읽습니다.
package
{
    import flash.display.Sprite;
    import flash.desktop.Clipboard;
    import flash.desktop.ClipboardFormats;
    import flash.desktop.ClipboardTransferMode;

    public class ClipboardExample extends Sprite
    {
        public function ClipboardExample()
        {
            var sally:String = "Sally";
            var person:String;
            
            copy(sally);
            person = paste();
            trace(person); //traces: "Sally"
        }

        private function copy(text:String):void{
            Clipboard.generalClipboard.clear();
            Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, text);
        }
        
        private function paste():String{
            if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){
                return String(Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT));
            } else {return null;}
        }
        
    }
}