패키지 | flash.net |
클래스 | public class URLLoader |
상속 | URLLoader EventDispatcher Object |
하위 클래스 | AVURLLoader |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader 객체는 모든 데이터를 URL에서 다운로드한 다음 응용 프로그램의 코드에 사용할 수 있도록 합니다. 다운로드 진행 상황에 대한 알림을 전송하며, 이 진행 상황은 전달된 이벤트뿐 아니라 bytesLoaded
및 bytesTotal
속성을 통해서도 모니터링할 수 있습니다.
FLV 등의 매우 큰 비디오 파일을 로드할 때는 메모리 부족 오류가 발생할 수 있습니다.
응용 프로그램 보안 샌드박스가 아닌 다른 보안 샌드박스의 Flash Player와 AIR 응용 프로그램 내용에 이 클래스를 사용할 경우 다음과 같은 보안 모델을 생각해 볼 수 있습니다.
- local-with-filesystem 샌드박스에 있는 SWF 파일은 network 샌드박스에 있는 리소스에서 데이터를 로드하거나 이러한 리소스에 데이터를 제공할 수 없습니다.
- 기본적으로 호출하는 SWF 파일과 로드하는 URL은 같은 도메인에 있어야 합니다. 예를 들어 www.adobe.com에 있는 SWF 파일은 같은 도메인인 www.adobe.com에 있는 소스에서만 데이터를 로드할 수 있습니다. 다른 도메인에서 데이터를 로드하려면 해당 데이터를 호스팅하는 서버에 URL 정책 파일을 배치합니다.
보안에 대한 자세한 내용은 Flash Player 개발자 센터 항목: 보안을 참조하십시오.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
bytesLoaded : uint = 0
로드 작업 중 지금까지 로드한 바이트 수를 나타냅니다. | URLLoader | ||
bytesTotal : uint = 0
다운로드한 데이터의 총 바이트 수를 나타냅니다. | URLLoader | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
data : *
로드 작업으로 수신된 데이터입니다. | URLLoader | ||
dataFormat : String = "text"
다운로드하는 데이터를 텍스트(URLLoaderDataFormat.TEXT), 원시 이진 데이터(URLLoaderDataFormat.BINARY) 또는 URL 인코딩된 변수(URLLoaderDataFormat.VARIABLES) 중 어떤 형식으로 수신할 것인지 제어합니다. | URLLoader |
메서드 | 정의 주체 | ||
---|---|---|---|
URLLoader(request:URLRequest = null)
URLLoader 객체를 만듭니다. | URLLoader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [재정의]
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | URLLoader | ||
진행 중인 로드 작업을 닫습니다. | URLLoader | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 URL에서 데이터를 보내거나 로드합니다. | URLLoader | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
수신된 모든 데이터가 디코딩된 후 URLLoader 객체의 data 속성에 배치되면 전달됩니다. | URLLoader | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
load() 메서드 호출로 HTTP를 통해 데이터 액세스를 시도하고 Adobe AIR에서 요청에 대한 상태 코드를 감지 및 반환할 수 있을 때 전달됩니다. | URLLoader | |||
URLLoader.load() 호출로 HTTP를 통해 데이터 액세스를 시도할 때 전달됩니다. | URLLoader | |||
URLLoader.load() 호출로 치명적인 오류가 발생하여 다운로드가 중단되면 전달됩니다. | URLLoader | |||
URLLoader.load() 메서드 호출에 이어 다운로드 작업이 시작될 때 전달됩니다. | URLLoader | |||
다운로드 작업이 진행되어 데이터가 수신될 때 전달됩니다. | URLLoader | |||
URLLoader.load() 호출로 보안 샌드박스 외부의 서버에서 데이터 로드를 시도하면 전달됩니다. | URLLoader |
bytesLoaded | 속성 |
public var bytesLoaded:uint = 0
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
로드 작업 중 지금까지 로드한 바이트 수를 나타냅니다.
bytesTotal | 속성 |
public var bytesTotal:uint = 0
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
다운로드한 데이터의 총 바이트 수를 나타냅니다. 이 속성은 로드 작업이 진행 중인 경우에는 0을 포함하고 작업이 완료되면 채워집니다. 또한 Content-Length 머리글이 누락되면 총 바이트 수가 확정되지 않습니다.
data | 속성 |
public var data:*
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
로드 작업으로 수신된 데이터입니다. 이 속성은 로드 작업이 완료된 때만 채워집니다. 데이터의 형식은 dataFormat
속성의 설정에 따라 달라집니다.
dataFormat
속성이 URLLoaderDataFormat.TEXT
인 경우 수신된 데이터는 로드된 파일의 텍스트가 포함된 문자열입니다.
dataFormat
속성이 URLLoaderDataFormat.BINARY
인 경우 수신된 데이터는 원시 이진 데이터가 포함된 ByteArray 객체입니다.
dataFormat
속성이 URLLoaderDataFormat.VARIABLES
인 경우 수신된 데이터는 URL 인코딩된 변수가 포함된 URLVariables 객체입니다.
관련 API 요소
예제 ( 예제 사용 방법 )
//params.txt is a local file that includes: firstName=Tom&lastName=Jones var lbl:TextField = new TextField(); var urlRequest:URLRequest = new URLRequest("params.txt"); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { lbl.text = urlLoader.data.lastName + "," + urlLoader.data.firstName; addChild(lbl); }
dataFormat | 속성 |
public var dataFormat:String = "text"
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
다운로드하는 데이터를 텍스트(URLLoaderDataFormat.TEXT
), 원시 이진 데이터(URLLoaderDataFormat.BINARY
) 또는 URL 인코딩된 변수(URLLoaderDataFormat.VARIABLES
) 중 어떤 형식으로 수신할 것인지 제어합니다.
dataFormat
속성 값이 URLLoaderDataFormat.TEXT
인 경우 수신된 데이터는 로드된 파일의 텍스트가 포함된 문자열입니다.
dataFormat
속성 값이 URLLoaderDataFormat.BINARY
인 경우 수신된 데이터는 원시 이진 데이터가 포함된 ByteArray 객체입니다.
dataFormat
속성 값이 URLLoaderDataFormat.VARIABLES
인 경우 수신된 데이터는 URL 인코딩된 변수가 포함된 URLVariables 객체입니다.
기본값: URLLoaderDataFormat.TEXT.
관련 API 요소
예제 ( 예제 사용 방법 )
var PATH:String = "lorem.txt"; var urlRequest:URLRequest = new URLRequest(PATH); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; // default urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { textArea.text = urlLoader.data; }
URLLoader | () | 생성자 |
public function URLLoader(request:URLRequest = null)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader 객체를 만듭니다.
매개 변수request:URLRequest (default = null ) — 다운로드할 URL을 지정하는 URLRequest 객체입니다. 이 매개 변수가 생략된 경우 로드 작업이 시작되지 않습니다. 이 매개 변수가 지정되면 로드 작업이 즉시 시작됩니다. 자세한 내용은 load 항목을 참조하십시오.
|
관련 API 요소
addEventListener | () | 메서드 |
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. 표시 목록의 모든 노드에서 특정 유형의 이벤트, 단계, 우선 순위에 대한 이벤트 리스너를 등록할 수 있습니다.
이벤트 리스너의 등록을 마친 뒤에는 addEventListener()
를 추가로 호출하여 그 우선 순위를 변경할 수 없습니다. 리스너의 우선 순위를 변경하려면 먼저 removeListener()
를 호출해야 합니다. 그런 다음 해당 리스너를 새로운 우선 순위 레벨로 다시 등록할 수 있습니다.
일단 리스너가 등록된 뒤에 type
또는 useCapture
값을 달리하여 addEventListener()
를 이어서 호출하면 별도의 리스너 등록이 생성된다는 것에 유의합니다. 예를 들어 useCapture
가 true
로 설정된 리스너를 등록하면 이 리스너는 캡처 단계 동안에만 수신합니다. 그러나 useCapture
를 false
로 설정하고 동일한 리스너 객체를 사용하여 addEventListener()
를 다시 호출하면 별도로 두 개의 리스너가 등록되어, 한 리스너는 캡처 단계 동안 수신하고 다른 하나는 대상 및 버블링 단계 동안 수신합니다.
대상 단계 또는 버블링 단계 전용의 이벤트 리스너를 등록할 수는 없습니다. 버블링은 대상 노드의 조상에만 적용되기 때문에 이들 단계는 등록 과정에서 하나로 통합됩니다.
사용하지 않는 이벤트 리스너는 removeEventListener()
를 호출하여 제거하도록 합니다. 이렇게 하지 않으면 메모리 문제가 발생할 수 있습니다. useWeakReference
매개 변수가 true
로 설정되지 않은 경우 전달하는 객체가 있는 한, 가비지 수집기는 이벤트 리스너를 제거하지 않으므로 리스너는 메모리에서 자동으로 제거되지 않습니다.
EventDispatcher 인스턴스를 복사해도 연결된 이벤트 리스너는 복사되지 않습니다. 새로 만든 노드에 이벤트 리스너가 필요한 경우, 노드를 만든 후 리스너를 연결해야 합니다. 그러나 EventDispatcher 인스턴스를 이동할 때에는 연결된 이벤트 리스너도 함께 이동됩니다.
이벤트를 처리 중인 노드에서 이벤트 리스너를 등록하는 경우, 그 이벤트 리스너는 현재 단계 동안에는 트리거되지 않지만 이벤트 흐름에서 이후 단계(예: 버블링 단계) 동안에는 트리거될 수 있습니다.
이벤트를 처리 중인 노드에서 이벤트 리스너를 제거하는 경우, 그 리스너는 현재 액션에 의해 트리거됩니다. 일단 제거된 이벤트 리스너는 이후의 처리를 위해 재등록하지 않는 한 다시는 호출되지 않습니다.
매개 변수
type:String — 이벤트 유형입니다.
| |
listener:Function — 이벤트를 처리하는 리스너 함수입니다. 아래 예제에서 보듯이, 이 함수는 Event 객체를 유일한 매개 변수로 사용하며 아무 것도 반환하지 않아야 합니다.
function(evt:Event):void 함수의 이름은 임의로 지정할 수 있습니다. | |
useCapture:Boolean (default = false ) —
리스너가 캡처 단계에서 작동하는지 아니면 대상 및 버블링 단계에서 작동하는지를 결정합니다. useCapture 가 true 로 설정된 경우, 리스너는 캡처 단계에서만 이벤트를 처리하고 대상 또는 버블링 단계에서는 작동하지 않습니다. useCapture 가 false 인 경우, 리스너는 대상 또는 버블링 단계 동안에만 이벤트를 처리합니다. 세 단계 모두에서 이벤트를 수신하려면 addEventListener 를 두 번 호출해야 합니다. 먼저 useCapture 를 true 로 설정하여 호출한 다음 useCapture 를 false 로 설정하여 다시 호출합니다.
| |
priority:int (default = 0 ) — 이벤트 리스너의 우선 순위 레벨입니다. 우선 순위는 부호 있는 32비트 정수로 지정됩니다. 숫자가 클수록 우선 순위가 높습니다. 우선 순위가 n인 리스너를 모두 처리한 뒤에 우선 순위가 n -1인 리스너가 처리됩니다. 둘 이상의 리스너가 우선 순위가 같을 경우, 추가된 순서에 따라 처리됩니다. 기본 우선 순위는 0입니다.
| |
useWeakReference:Boolean (default = false ) — 리스너에 대한 참조가 강한지 아니면 약한지를 결정합니다. 강한 참조(기본값)는 해당 리스너의 가비지 수집을 막습니다. 약한 참조는 이를 막지 못합니다. 클래스 레벨 멤버 함수는 가비지 수집의 영향을 받지 않으므로 가비지 수집과 상관없이 클래스 레벨 멤버 함수의 |
close | () | 메서드 |
public function close():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
진행 중인 로드 작업을 닫습니다. 진행 중인 모든 로드 작업이 즉시 종료됩니다. 현재 스트리밍될 URL이 없으면 잘못된 스트림 오류가 발생합니다.
load | () | 메서드 |
public function load(request:URLRequest):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
지정된 URL에서 데이터를 보내거나 로드합니다. 데이터는 dataFormat
속성에 지정한 값에 따라 텍스트, 원시 이진 데이터 또는 URL 인코딩된 변수로 수신할 수 있습니다. dataFormat
속성의 기본값은 텍스트입니다. 지정된 URL로 데이터를 보내려는 경우 URLRequest 객체의 data
속성을 지정할 수 있습니다.
참고: 로드되는 파일에 ASCII가 아닌 문자(영어가 아닌 다른 언어에서 사용)가 포함되어 있는 경우 UTF-8 또는 UTF-16과 같은 유니코드 인코딩을 사용하여 파일을 저장하는 것이 좋습니다. ASCII는 유니코드 형식이 아닙니다.
local-with-filesystem 샌드박스에 있는 SWF 파일은 network 샌드박스에 있는 리소스에서 데이터를 로드하거나 이러한 리소스에 데이터를 제공할 수 없습니다.
기본적으로 호출하는 SWF 파일과 로드하는 URL은 같은 도메인에 있어야 합니다. 예를 들어 www.adobe.com에 있는 SWF 파일은 같은 도메인인 www.adobe.com에 있는 소스에서만 데이터를 로드할 수 있습니다. 다른 도메인에서 데이터를 로드하려면 해당 데이터를 호스팅하는 서버에 URL 정책 파일을 배치합니다.
일반적으로 예약된 포트에 연결할 수 없습니다. 차단된 포트의 전체 목록은 ActionScript 3.0 개발자 안내서의 "제한적 네트워킹 API"를 참조하십시오.
Flash Player 10 이상에서는 multipart Content-Type(예: "multipart/form-data")을 사용하고 POST 본문 내 "content-disposition" 헤더에 "filename" 매개 변수를 지정하여 업로드를 처리하는 경우 POST 작업이 업로드에 적용되는 보안 규칙의 영향을 받을 수 있습니다.
- POST 작업은 마우스 클릭이나 키 누르기 같은 사용자 동작에 대한 응답으로 수행됩니다.
- POST 작업이 크로스 도메인인 경우, 즉 POST 대상이 POST 요청을 보내는 SWF 파일과 같은 서버에 없는 경우 대상 서버는 크로스 도메인 액세스를 허용하는 URL 정책 파일을 제공해야 합니다.
또한 multipart Content-Type의 경우 구문이 RFC2046 표준에 따라 유효해야 합니다. 구문이 유효하지 않은 경우 POST 작업은 업로드에 적용되는 보안 규칙의 영향을 받을 수 있습니다.
보안에 대한 자세한 내용은 Flash Player 개발자 센터 항목: 보안을 참조하십시오.
매개 변수
request:URLRequest — 다운로드할 URL을 지정하는 URLRequest 객체입니다.
|
이벤트
complete: — 데이터가 성공적으로 로드되면 전달됩니다.
| |
httpStatus: — HTTP를 통해 액세스되고 현재의 Flash Player 환경이 상태 코드 수신을 지원하는 경우 complete 또는 error 이벤트 외에도 이러한 이벤트를 수신할 수 있습니다.
| |
ioError: — 로드 작업을 완료할 수 없습니다.
| |
progress: — 다운로드 작업이 진행되어 데이터가 수신될 때 전달됩니다.
| |
securityError: — 로드 작업에서 호출자의 보안 샌드박스 외부에 있는 서버의 데이터를 검색하려고 시도했습니다. 이 오류는 해당 서버의 정책 파일을 사용하여 해결할 수 있습니다.
| |
securityError: — 로드 작업에서 SWZ 파일(Adobe 플랫폼 구성 요소)을 로드하려고 시도했으나 인증서가 유효하지 않거나 다이제스트가 구성 요소와 일치하지 않습니다.
| |
open: — 로드 작업이 시작될 때 전달됩니다.
| |
httpResponseStatus: — load() 메서드에 대한 호출에서 HTTP를 통해 데이터 액세스를 시도하고 Adobe AIR에서 요청에 대한 상태 코드를 감지 및 반환할 수 있는 경우 전달됩니다.
|
오류
ArgumentError — URLRequest.requestHeader 객체는 금지된 특정 HTTP 요청 헤더를 포함할 수 없습니다. 자세한 내용은 URLRequestHeader 클래스 설명을 참조하십시오.
| |
MemoryError — 이 오류는 다음과 같은 이유로 발생할 수 있습니다. 1) Flash Player 또는 AIR에서 URLRequest.data 매개 변수를 UTF8에서 MBCS로 변환할 수 없습니다. load() 에 전달된 URLRequest 객체가 GET 작업을 수행하도록 설정되고 System.useCodePage 가 true 로 설정된 경우 이 오류가 발생합니다. Flash Player 또는 AIR에서 POST 데이터를 위한 메모리를 할당할 수 없습니다. load 에 전달된 URLRequest 객체가 POST 작업을 수행하도록 설정된 경우 이 오류가 발생합니다.
| |
SecurityError — 신뢰할 수 없는 로컬 파일은 인터넷 통신이 불가능합니다. 이 파일을 네트워킹 가능한 로컬 파일(local-with-networking) 또는 신뢰할 수 있는 파일로 다시 규정하면 이 오류를 해결할 수 있습니다.
| |
SecurityError — 일반적으로 예약된 포트에 연결하려는 중입니다. 차단된 포트의 전체 목록은 ActionScript 3.0 개발자 안내서의 "제한적 네트워킹 API"를 참조하십시오.
| |
TypeError — 요청 매개 변수의 값이나 전달된 URLRequest 객체의 URLRequest.url 속성이 null 입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
URLRequest
객체를 만들어 XML 파일의 위치를 식별하고 있는데 이 예제에서는 SWF 파일과 동일한 디렉토리에 XML 파일이 있습니다. 이 파일은 try...catch
블록에서 로드해서 혹시 있을 수 있는 오류를 포착합니다. 여기에서는 SecurityError
오류를 포착했습니다. IO_ERROR
이벤트가 발생하면 errorHandler()
메서드가 호출되어 xmlTextField
텍스트 필드에 오류 메시지를 기록합니다. 일단 XML 파일 데이터가 수신되어 로더
URLLoader 객체의 data 속성에 위치하게 되면 Event.COMPLETE
이벤트가 전달되고 loaderCompleteHandler()
메서드가 호출됩니다.
loaderCompleteHandler()
메서드에서 try...catch
블록을 사용해서 로드한 데이터를 파일에서 XML 객체로 변환하는 동안 발생할 수 있는 파싱 오류를 포착합니다. 그 후에 readNodes()
메서드가 반복해서 XML 문서의 노드에 있는 모든 요소들을 탐색해서 xmlTextField
텍스트 필드를 모든 요소의 첫 번째 특성 목록과 함께 추가합니다.
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.xml.*; import flash.events.IOErrorEvent; public class URLLoader_loadExample extends Sprite { private var xmlTextField:TextField = new TextField(); private var externalXML:XML; private var loader:URLLoader; public function URLLoader_loadExample() { var request:URLRequest = new URLRequest("xmlFile.xml"); loader = new URLLoader(); try { loader.load(request); } catch (error:SecurityError) { trace("A SecurityError has occurred."); } loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); xmlTextField.x = 10; xmlTextField.y = 10; xmlTextField.background = true; xmlTextField.autoSize = TextFieldAutoSize.LEFT; addChild(xmlTextField); } private function loaderCompleteHandler(event:Event):void { try { externalXML = new XML(loader.data); readNodes(externalXML); } catch (e:TypeError) { trace("Could not parse the XML file."); } } private function readNodes(node:XML):void { for each (var element:XML in node.elements()) { xmlTextField.appendText(element.attributes()[0] + "\n"); readNodes(element); } } private function errorHandler(e:IOErrorEvent):void { xmlTextField.text = "Had problem loading the XML File."; } } }
complete | 이벤트 |
flash.events.Event
속성 Event.type =
flash.events.Event.COMPLETE
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
수신된 모든 데이터가 디코딩된 후 URLLoader 객체의 data 속성에 배치되면 전달됩니다. 수신된 데이터는 이 이벤트가 전달되면 액세스할 수 있습니다.
Event.COMPLETE
상수는 complete
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 로드가 완료된 네트워크 객체입니다. |
관련 API 요소
httpResponseStatus | 이벤트 |
flash.events.HTTPStatusEvent
속성 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, AIR 1.0, Flash Lite 4 |
load() 메서드 호출로 HTTP를 통해 데이터 액세스를 시도하고 Adobe AIR에서 요청에 대한 상태 코드를 감지 및 반환할 수 있을 때 전달됩니다.
httpStatus
이벤트와는 달리, httpResponseStatus
이벤트는 응답 데이터 이전에 전달됩니다. 또한 httpResponseStatus
이벤트에는 responseHeaders
및 responseURL
속성(httpStatus
이벤트에 대해 정의되어 있지 않음) 값이 포함되어 있습니다. httpResponseStatus
이벤트(있는 경우)는 complete
또는 error
이벤트 발생 전에 추가로 전송됩니다.
HTTPStatusEvent.HTTP_RESPONSE_STATUS
상수는 httpResponseStatus
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
responseURL | 응답이 반환된 URL입니다. |
responseHeaders | URLRequestHeader 객체의 배열로 응답이 반환된 응답 헤더입니다. |
status | 서버에 의해 반환된 HTTP 상태 코드입니다. |
redirected | 응답이 리디렉션의 결과인지 여부입니다. |
target | HTTP 상태 코드를 수신하는 네트워크 객체입니다. |
관련 API 요소
httpStatus | 이벤트 |
flash.events.HTTPStatusEvent
속성 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader.load() 호출로 HTTP를 통해 데이터 액세스를 시도할 때 전달됩니다. Flash Player에서 실행 중인 내용의 경우 이 이벤트는 현재의 Flash Player 환경에서 요청에 대한 상태 코드를 감지 및 반환할 수 있을 때만 전달됩니다. 일부 브라우저 환경에서는 이 정보를 제공할 수 없습니다. httpStatus
이벤트는 complete
또는 error
이벤트 발생 전에 추가로 전송됩니다.
HTTPStatusEvent.HTTP_STATUS
상수는 httpStatus
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
status | 서버에 의해 반환된 HTTP 상태 코드입니다. |
target | HTTP 상태 코드를 수신하는 네트워크 객체입니다. |
관련 API 요소
ioError | 이벤트 |
flash.events.IOErrorEvent
속성 IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader.load() 호출로 치명적인 오류가 발생하여 다운로드가 중단되면 전달됩니다.
ioError
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
errorID | 특정 오류와 연결된 참조 번호입니다(AIR만 해당). |
target | 입력/출력 오류가 발생한 네트워크 객체입니다. |
text | 오류 메시지로 표시될 텍스트입니다. |
관련 API 요소
open | 이벤트 |
flash.events.Event
속성 Event.type =
flash.events.Event.OPEN
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader.load()
메서드 호출에 이어 다운로드 작업이 시작될 때 전달됩니다.
Event.OPEN
상수는 open
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 연결을 설정한 네트워크 객체입니다. |
관련 API 요소
progress | 이벤트 |
flash.events.ProgressEvent
속성 ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
다운로드 작업이 진행되어 데이터가 수신될 때 전달됩니다.
데이터가 완전히 수신되기 전에는 URLLoader 객체로 데이터를 액세스할 수 없습니다. 따라서 progress 이벤트는 다운로드 진행 상황을 알리는 역할만을 합니다. 데이터가 완전히 다운로드되기 전에 액세스하려면 URLStream 객체를 사용합니다.
progress
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
bytesLoaded | 리스너가 이벤트를 처리할 때 로드된 항목 수 또는 바이트 수입니다. |
bytesTotal | 로드 프로세스가 완료되면 최종적으로 로드될 총 바이트 수 또는 항목 수입니다. |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 진행률을 보고하는 객체입니다. |
관련 API 요소
securityError | 이벤트 |
flash.events.SecurityErrorEvent
속성 SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader.load() 호출로 보안 샌드박스 외부의 서버에서 데이터 로드를 시도하면 전달됩니다. 또한 URLLoader.load()
호출로 SWZ 파일 로드를 시도하지만 인증서가 유효하지 않거나 다이제스트 문자열이 구성 요소와 일치하지 않는 경우에도 전달됩니다.
SecurityErrorEvent.SECURITY_ERROR
상수는 securityError
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 보안 오류를 보고하는 네트워크 객체입니다. |
text | 오류 메시지로 표시될 텍스트입니다. |
관련 API 요소
참고: 이 예제를 실행하려면 urlLoaderExample.txt라는 이름의 파일을 SWF 파일과 같은 디렉토리에 넣어야 합니다. 이 파일에는 다음과 같은 내용의 텍스트만 포함되어 있어야 합니다. answer=42&question=unknown
이 예제 코드는 다음 작업을 수행합니다.
- 생성자 함수는
loader
라는 이름의 URLLoader 인스턴스와request
라는 이름의 URLRequest 인스턴스를 만들며, 이것은 로드할 파일의 위치와 이름을 포함합니다. loader
객체는configureListeners()
메서드에 전달되고, 이 메서드는 지원되는 각 URLLoader 이벤트에 대해 리스너를 추가합니다.- 그런 다음
request
객체가loader.load()
에 전달되고, 이 메서드는 해당 텍스트 파일을 로드합니다. - URLLoader가 텍스트 파일 로드를 완료하면
Event.COMPLETE
이벤트가 발생하여completeHandler()
메서드가 트리거됩니다.completeHandler()
메서드는 파일에서 로드된 텍스트에서 URLVariables 객체를 만듭니다. URLVariables 객체는 URL 인코딩된 이름/값 쌍을 ActionScript 속성으로 변환하여 로드된 데이터를 조작하기 쉽게 만듭니다.
package { import flash.display.Sprite; import flash.events.*; import flash.net.*; public class URLLoaderExample extends Sprite { private loader:URLoader; public function URLLoaderExample() { loader = new URLLoader(); configureListeners(loader); var request:URLRequest = new URLRequest("urlLoaderExample.txt"); try { loader.load(request); } catch (error:Error) { trace("Unable to load requested document."); } } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function completeHandler(event:Event):void { var loader:URLLoader = URLLoader(event.target); trace("completeHandler: " + loader.data); var vars:URLVariables = new URLVariables(loader.data); trace("The answer is " + vars.answer); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
Tue Jun 12 2018, 03:17 PM Z