'데이타 수신중 데이타 접근'에 해당되는 글 1건

  1. 2008.09.07 데이타 수신중 데이타 접근
바이너리 등의 데이터를 받는 즉시 활용하고 싶다. 가령 ASZip과 같이 받은 양만큼 압축을 풀어서 데이터를 활용하거나 큰 이미지를 받는데 일부를 받는 즉시 화면에 과정을 그리고 싶다면 URLLoader() 클래스 보다는 URLStream()클래스를 사용해야 한다.

URLStream 클래스는 URL 다운로드에 대한 Low Level의 데이터 접근을 제공한다. 이러한 데이터는 다운로드 즉시 사용이 가능하며 URLLoader()에서 처럼 전부를 다운받을 때 까지 기다릴 필요가 없다. 또한 다운로드중에 스트림을 닫을 수 있어 사용자의 거부가 발생하면 즉시 처리할 수 있다.


[ 속성 ]

bytesAvailable : uint

[read-only] 입력 버퍼에서 읽을 수 있는 데이터 바이트 수를 반환합니다.

connected : Boolean

[read-only] URLStream 객체가 현재 연결된 상태인지 여부를 나타냅니다.

endian : String

데이터의 바이트 순서를 나타내며, BIG_ENDIAN 또는 LITTLE_ENDIAN 값을 가질 수 있습니다.

objectEncoding : uint

객체를 쓰거나 읽을 때 사용되는 AMF의 버전을 제어합니다.



[ 메서드 ]

close():void

스트림을 즉시 닫고 다운로드 작업을 취소합니다.

load(request:URLRequest):void

요청 매개 변수에 정의된 URL을 다운로드하기 시작합니다.

readBoolean():Boolean

스트림에서 부울 값을 읽습니다.

readByte():int

스트림에서 부호 있는 바이트를 읽습니다.

readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

스트림에서 길이 바이트의 데이터를 읽습니다.

readDouble():Number

스트림에서 IEEE 754 배정밀도 부동 소수점 숫자를 읽습니다.

readFloat():Number

스트림에서 IEEE 754 단정밀도 부동 소수점 숫자를 읽습니다.

readInt():int

스트림에서 부호 있는 32비트 정수를 읽습니다.

readMultiByte(length:uint, charSet:String):String

지정된 문자 세트를 사용하여 바이트 스트림에서 지정된 길이의 멀티바이트 문자열을 읽습니다.

readObject():*

소켓에서 AMF로 인코딩된 객체를 읽습니다.

readShort():int

스트림에서 부호 있는 16비트 정수를 읽습니다.

readUnsignedByte():uint

스트림에서 부호 없는 바이트를 읽습니다.

readUnsignedInt():uint

스트림에서 부호 없는 32비트 정수를 읽습니다.

readUnsignedShort():uint

스트림에서 부호 없는 16비트 정수를 읽습니다.

readUTF():String

스트림으로부터 UTF-8 문자열을 읽습니다.

readUTFBytes(length:uint):String

스트림에서 길이 UTF-8 바이트 시퀀스를 읽고 문자열을 반환합니다.


[ 이벤트 ]

complete

데이터가 성공적으로 로드되면 전달됩니다.

httpStatus

URLStream.load() 호출로 HTTP를 통해 데이터 액세스를 시도하고 현재의 Flash Player에서 이 요청에 대한 상태 코드를 감지 및 반환할 수 있을 때 전달됩니다.

ioError

로드 작업을 실패하게 만드는 입력/출력 오류가 발생할 때 전달됩니다.

open

로드 작업이 시작될 때 전달됩니다.

progress

다운로드 작업이 진행되어 데이터가 수신될 때 전달됩니다.

securityError

URLStream.load() 호출로 보안 샌드박스 외부의 서버에서 데이터 로드를 시도할 때 전달됩니다.


방법은 URLLoader()와 같다. URLRequest()를 통하여 접근할 데이터 url을 설정하고 URLStream.load() 메서드를 통해 데이터를 수신받으며 이벤트는 ProgressEvent이벤트를 사용한다.

Posted by 버터백통