패키지flash.media
클래스public class SoundLoaderContext
상속SoundLoaderContext Inheritance Object

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

SoundLoaderContext 클래스는 사운드를 로드하는 SWF 파일에 대한 보안 확인을 제공합니다. SoundLoaderContext 객체는 생성자 및 Sound 클래스의 load() 메서드에 인수로 전달됩니다.

이 클래스를 사용할 때는 다음과 같은 Flash(r) Player 보안 모델을 고려해 볼 수 있습니다.

자세한 내용은 다음을 참조하십시오.



Public 속성
 속성다음에 의해 정의됨
  bufferTime : Number = 1000
사운드 스트리밍 시작 전에 스트리밍 사운드를 버퍼에 미리 로드하는 시간(초)입니다.
SoundLoaderContext
  checkPolicyFile : Boolean = false
사운드 로드 시작 전에 Flash Player가 로드된 사운드의 서버로부터 크로스 도메인 정책 파일을 다운로드해야 할지 여부를 지정합니다.
SoundLoaderContext
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
 Inheritedprototype : Object
[static] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
Public 메서드
 메서드다음에 의해 정의됨
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
새 사운드 로더 컨텍스트 객체를 만듭니다.
SoundLoaderContext
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 정보
bufferTime속성
public var bufferTime:Number = 1000

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

사운드 스트리밍 시작 전에 스트리밍 사운드를 버퍼에 미리 로드하는 시간(초)입니다.

전역 SoundMixer.bufferTime 속성을 설정하여 SoundLoaderContext.bufferTime 값을 재정의할 수 없습니다. SoundMixer.bufferTime 속성은 SWF에 포함된 사운드 스트림의 버퍼링 시간에 영향을 주며, 동적으로 만들어진 Sound 객체(ActionScript로 만든 Sound 객체)와는 무관합니다.

checkPolicyFile속성 
public var checkPolicyFile:Boolean = false

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

사운드 로드 시작 전에 Flash Player가 로드된 사운드의 서버로부터 크로스 도메인 정책 파일을 다운로드해야 할지 여부를 지정합니다. 이 속성은 호출하는 SWF 파일의 도메인 외부에서 Sound.load() 메서드를 사용하여 로드한 사운드에 적용됩니다.

호출하는 SWF 파일의 도메인 외부에서 사운드를 로드하고, ActionScript에서 해당 사운드 데이터에 대한 낮은 레벨의 액세스가 필요할 경우 이 속성을 true로 설정합니다. 사운드 데이터에 대한 낮은 레벨의 액세스란 ID3Info 객체를 가져오기 위해 Sound.id3 속성을 참조하거나 로드된 사운드로부터 사운드 샘플을 가져오기 위해 SoundMixer.computeSpectrum() 메서드를 호출하는 것 등입니다. 로딩 시 checkPolicyFile 속성을 true로 설정하지 않고 사운드 데이터에 액세스하려고 하면 필요한 정책 파일이 다운로드되지 않아 SecurityError 예외가 발생할 수 있습니다.

로드 중인 사운드 데이터에 대해 낮은 레벨의 액세스가 필요하지 않으면 checkPolicyFiletrue로 설정하지 않는 것이 좋습니다. 정책 파일을 확인하는 데 네트워크 대역폭이 소모되고 다운로드 시작이 지연될 수 있으므로 필요한 경우에만 확인해야 합니다.

SoundLoaderContext.checkPolicyFiletrue로 설정된 상태에서 Sound.load()를 호출할 경우, Flash Player는 해당하는 크로스 도메인 정책 파일을 다운로드하거나 그러한 정책 파일이 없음을 확인한 다음 지정된 사운드를 다운로드합니다. Flash Player는 다음과 같은 작업을 순서대로 수행하여 정책 파일이 있는지 확인합니다.

모든 경우에 적절한 정책 파일이 사운드의 서버에 있고 그 정책 파일의 위치에 따라 URLRequest.url의 사운드 파일에 액세스할 수 있으며, 호출하는 SWF 파일의 도메인에서 하나 이상의 <allow-access-from> 태그를 통해 해당 사운드에 액세스할 수 있도록 허용해야 합니다.

checkPolicyFiletrue로 설정하면 Flash Player는 정책 파일이 확인될 때까지 기다렸다가 사운드를 로드합니다. Sound.id3 또는 SoundMixer.computeSpectrum() 호출과 같이 사운드 데이터에 대한 낮은 레벨의 작업을 수행하려면 Sound 객체로부터 progresscomplete 이벤트가 전달될 때까지 기다려야 합니다.

checkPolicyFiletrue로 설정했지만 적절한 정책 파일이 발견되지 않은 경우, 정책 파일이 필요한 작업을 수행하면 오류 메시지가 표시되고 Flash Player에서 SecurityError 예외가 발생합니다. complete 이벤트 수신 후 try 블록 내의 Sound.id3 값을 가져와 SecurityError가 발생하는지 확인하면 정책 파일의 발견 여부를 테스트할 수 있습니다.

서버측 HTTP 리디렉션을 사용하는 URL에서 사운드를 다운로드하는 경우 checkPolicyFile 사용에 주의해야 합니다. Flash Player는 Sound.load()로 전달된 URLRequest 객체의 url 속성에 해당하는 정책 파일을 검색하려고 시도합니다. HTTP 리디렉션으로 인해 최종 사운드 파일이 다른 URL에서 다운로드된 경우 보안 결정에 중요한 최종 URL에 처음에 다운로드한 정책 파일이 적용되지 않을 수 있습니다.

이러한 상황을 해결하는 한 가지 progress 또는 complete 이벤트 수신 후 사운드의 최종 URL이 포함된 Sound.url 속성 값을 확인하는 것입니다. 그런 다음 사운드의 최종 URL을 기준으로 계산한 정책 파일의 URL로 Security.loadPolicyFile() 메서드를 호출합니다. 마지막으로, 예외가 발생하지 않을 때까지 Sound.id3 값을 폴링합니다.

정책 파일에 대한 자세한 내용은 ActionScript 3.0 프로그래밍의 "Flash Player 보안" 장을 참조하십시오.

참고 사항

생성자 정보
SoundLoaderContext()생성자
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

새 사운드 로더 컨텍스트 객체를 만듭니다.

매개 변수
bufferTime:Number (default = 1000) — 사운드 스트리밍 시작 전에 스트리밍 사운드를 버퍼에 미리 로드하는 시간(초)입니다.
 
checkPolicyFile:Boolean (default = false) — 객체를 로드하는 즉시 Flash Player가 크로스 도메인 정책 파일의 존재 여부를 확인하도록 할 것인지(true) 아니면 확인하지 않을 것인지를 지정합니다.

예제

다음 예제에서는 사운드를 로드하는 버퍼가 3초로 설정됩니다.

SoundLoaderContext 객체(context)의 첫 번째 매개 변수는 1초인 기본 버퍼 값을 3초로 늘리는 데 사용됩니다. 값은 밀리초 단위입니다. SoundLoaderContext 객체의 두 번째 매개 변수가 true로 설정된 경우 Flash Player가 객체를 로드할 때 크로스 도메인 정책 파일을 확인합니다. 여기에서는 기본값인 false로 설정되어 있으므로 정책 파일을 확인하지 않습니다. 사운드 객체의 load() 메서드는 사운드 스트리밍을 시작하기 전에 컨텍스트 설정을 사용하여 스트리밍 사운드를 버퍼로 미리 로드하는 데 3초가 걸리는지 확인합니다. URLRequest 객체는 Adobe의 포드캐스트인 파일의 위치를 확인합니다. 사운드 파일을 로드하는 중에 IOErrorEvent.IO_ERROR 오류가 발생하면 errorHandler() 메서드가 호출됩니다.

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.media.SoundLoaderContext;
    import flash.events.IOErrorEvent;
    
    public class SoundLoaderContextExample extends Sprite {

        public function SoundLoaderContextExample() {
            var snd:Sound = new Sound();
            var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
            var context:SoundLoaderContext = new SoundLoaderContext(30000, false);

            snd.load(req, context);
            snd.play();      
 
            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace("The sound could not be loaded: " + errorEvent.text);
        }

    }
}




 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/media/SoundLoaderContext.html