데이터로 로드된 미디어 액세스Flash Player 9 이상, Adobe AIR 1.0 이상 로드 데이터에 액세스하려면 BitmapData.draw() 및 SoundMixer.computeSpectrum()메서드를 사용합니다. 기본적으로 다른 샌드박스에서 로드된 미디어로 렌더링 또는 재생되는 그래픽 또는 오디오 객체에서는 픽셀 데이터 또는 오디오 데이터를 가져올 수 없습니다. 그러나 다음 메서드를 사용하면 샌드박스 경계에 걸쳐 해당 데이터에 대한 액세스 권한을 부여할 수 있습니다.
다음 단원에서는 비트맵, 사운드 및 비디오 데이터 액세스에 대해 자세히 설명합니다. 비트맵 데이터 액세스BitmapData 객체의 draw() 메서드를 사용하면 BitmapData 객체에 현재 표시되는 모든 표시 객체의 픽셀을 그릴 수 있습니다. 여기에는 MovieClip 객체, Bitmap 객체 또는 모든 표시 객체의 픽셀이 포함됩니다. 다음 조건이 충족되어야 draw() 메서드로 BitmapData 객체에 픽셀을 그릴 수 있습니다.
이러한 조건이 충족되지 않으면 SecurityError 예외가 발생합니다. Loader 클래스의 load() 메서드를 사용하여 이미지를 로드하는 경우 LoaderContext 객체인 context 매개 변수를 지정할 수 있습니다. LoaderContext 객체의 checkPolicyFile 속성을 true로 설정하면 Flash Player에서 이미지가 로드되는 서버의 URL 정책 파일을 확인합니다. 정책 파일이 있고 이 파일에서 로드하는 SWF 파일의 도메인을 허용할 경우, 해당 SWF 파일은 Bitmap 객체의 데이터에 액세스할 수 있고, 그렇지 않으면 액세스할 수 없습니다. 또한 텍스트 필드의 <img> 태그를 통해 로드된 이미지의 checkPolicyFile 속성을 지정할 수 있습니다. 자세한 내용은 텍스트 필드에서 <img> 태그를 사용하여 SWF 파일 및 이미지 로드를 참조하십시오. 사운드 데이터 액세스다음과 같은 사운드 관련 ActionScript 3.0 API에는 보안 제한 사항이 있습니다.
모든 사운드에는 내용 샌드박스와 소유자 샌드박스의 두 가지 관련 샌드박스가 있습니다.
Sound 클래스의 load() 메서드를 사용하여 사운드를 로드하는 경우 SoundLoaderContext 객체인 context 매개 변수를 지정할 수 있습니다. SoundLoaderContext 객체의 checkPolicyFile 속성을 true로 설정하면 런타임에서 사운드가 로드되는 서버에 URL 정책 파일이 있는지 확인합니다. 정책 파일이 있고 이 파일이 로드하는 코드의 도메인을 허용할 경우, 해당 코드는 Sound 객체의 id 속성에 액세스할 수 있고, 그렇지 않으면 액세스할 수 없습니다. 또한 checkPolicyFile 속성을 설정하여 로드된 사운드에 SoundMixer.computeSpectrum() 메서드를 사용할 수 있습니다. 하나 이상의 사운드 소유자 샌드박스를 호출자에서 액세스할 수 없어 SoundMixer.stopAll() 메서드 호출 시 모든 사운드가 중단되지 않는지 여부를 SoundMixer.areSoundsInaccessible() 메서드를 사용하여 확인할 수 있습니다. SoundMixer.stopAll() 메서드를 호출하면 stopAll()의 호출자와 동일한 소유자 샌드박스에 있는 사운드를 중단할 수 있습니다. 또한 Security.allowDomain() 메서드를 호출한 SWF 파일에서 재생을 시작한 사운드를 중단하여 stopAll() 메서드를 호출하는 SWF 파일의 도메인에 액세스를 허용할 수 있습니다. 다른 사운드는 중단되지 않으며, 이 사운드는 SoundMixer.areSoundsInaccessible() 메서드를 호출하여 확인할 수 있습니다. computeSpectrum() 메서드를 호출하려면 재생되는 모든 사운드가 해당 메서드를 호출하는 객체와 동일한 샌드박스에 있거나 또는 호출자의 샌드박스에 액세스 권한을 부여한 소스에 있어야 합니다. 그렇지 않으면 SecurityError 예외가 발생합니다. SWF 파일의 라이브러리에 포함된 사운드에서 로드된 사운드의 경우, 로드된 SWF 파일에서 Security.allowDomain() 메서드를 호출하면 권한이 부여됩니다. SWF 파일이 아닌 소스에서 로드된 사운드의 경우(로드된 mp3 파일 또는 비디오 파일에서 시작), 소스 서버의 URL 정책 파일에서 로드된 미디어의 데이터에 대한 액세스 권한을 부여합니다. 자세한 내용은 제작자(개발자) 컨트롤 및 웹 사이트 컨트롤(정책 파일)을 참조하십시오. RTMP 스트림에서 사운드 데이터에 액세스하려면 서버에 대한 액세스를 허용해야 합니다. 서버측 ActionScript Client.audioSampleAccess 속성을 사용하여 Flash Media Server에 있는 특정 디렉토리에 대한 액세스를 허용합니다. 자세한 내용은 서버측 ActionScript 언어 참조 설명서를 참조하십시오. 비디오 데이터 액세스BitmapData.draw() 메서드를 사용하여 현재 비디오 프레임의 픽셀 데이터를 캡처할 수 있습니다. 다음과 같은 두 종류의 비디오가 있습니다.
BitmapData.draw() 메서드를 사용하여 RTMP 스트림에서 런타임 그래픽을 추출하려면 서버에 대한 액세스를 허용해야 합니다. 서버측 ActionScript Client.videoSampleAccess 속성을 사용하여 Flash Media Server에 있는 특정 디렉토리에 대한 액세스를 허용합니다. 자세한 내용은 서버측 ActionScript 언어 참조 설명서를 참조하십시오. 점진적 비디오를 source 매개 변수로 하여 BitmapData.draw() 메서드를 호출하는 경우, BitmapData.draw()의 호출자가 FLV 파일과 동일한 샌드박스에 있거나, 또는 FLV 파일의 서버에 호출하는 SWF 파일의 도메인에 대해 권한을 부여하는 정책 파일을 있어야 합니다. NetStream 객체의 checkPolicyFile 속성을 true로 설정하여 해당 정책 파일의 다운로드를 요청할 수 있습니다. |
|