내용 로드Flash Player 9 이상, Adobe AIR 1.0 이상 Flash Player 및 AIR 내용은 다음과 같은 여러 유형의 내용을 로드할 수 있습니다.
Loader 클래스로 SWF 파일 및 이미지 로드Loader 클래스를 사용하여 SWF 파일 및 이미지(JPG, GIF, 또는 PNG 파일)를 로드할 수 있습니다. local-with-filesystem 샌드박스에 있는 SWF 파일을 제외한 모든 SWF 파일에서는 모든 네트워크 도메인에 있는 SWF 파일과 이미지를 로드할 수 있습니다. 로컬 샌드박스의 SWF 파일만 로컬 파일 시스템의 SWF 파일과 이미지를 로드할 수 있습니다. 하지만 local-with-networking 샌드박스에 있는 파일은 local-trusted 또는 local-with-networking 샌드박스에 있는 로컬 SWF 파일만 로드할 수 있습니다. local-with-networking 샌드박스에 있는 SWF 파일은 이미지와 같이 SWF 파일이 아닌 로컬 내용을 로드할 수 있지만 로드된 내용의 데이터에는 액세스할 수 없습니다. 신뢰할 수 없는 소스(예: Loader 객체의 루트 SWF 파일에 대한 도메인이 아닌 도메인)에서 SWF 파일을 로드하는 경우, 다음 코드와 같이 Loader 객체의 마스크를 정의하여 해당 마스크의 바깥쪽 스테이지 부분에 로드된 내용(Loader 객체의 자식)을 그릴 수 없도록 할 수 있습니다. import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr); Loader 객체의 load() 메서드를 호출하는 경우에는 LoaderContext 객체인 context 매개 변수를 지정할 수 있습니다. LoaderContext 클래스에는 로드된 내용을 사용하는 방법에 대한 컨텍스트를 정의할 수 있는 세 가지 속성이 포함되어 있습니다.
자세한 내용은 로드 컨텍스트 지정을 참조하십시오. Loader 객체의 중요한 속성은 LoaderInfo 객체인 contentLoaderInfo 속성입니다. 다른 대부분의 객체와 달리 LoaderInfo 객체는 로드하는 SWF 파일과 로드된 내용 간에 공유되며 항상 양쪽에서 모두 액세스할 수 있습니다. 로드된 내용이 SWF 파일인 경우 DisplayObject.loaderInfo 속성을 통해 LoaderInfo 객체에 액세스할 수 있습니다. LoaderInfo 객체에는 로드 진행률, 로더 및 로드된 내용의 URL, 로더와 로드된 내용 간의 신뢰 관계 및 기타 정보가 포함됩니다. 자세한 내용은 로드 진행률 모니터링을 참조하십시오. 사운드 및 비디오 로드local-with-filesystem 샌드박스에 있는 내용을 제외한 모든 내용은 Sound.load(), NetConnection.connect() 및 NetStream.play() 메서드를 사용하여 네트워크에서 사운드와 비디오를 로드할 수 있습니다. local-with-filesystem 및 AIR 응용 프로그램 샌드박스의 내용만 로컬 파일 시스템에서 미디어를 로드할 수 있습니다. local-with-filesystem 샌드박스, AIR 응용 프로그램 샌드박스 또는 local-trusted 샌드박스에 있는 내용만 해당 로드된 파일의 데이터에 액세스할 수 있습니다. 로드된 미디어의 데이터에 액세스하는 데는 몇 가지 제한 사항이 있습니다. 자세한 내용은 데이터로 로드된 미디어 액세스를 참조하십시오. 텍스트 필드에서 <img> 태그를 사용하여 SWF 파일 및 이미지 로드다음 코드와 같이 <img> 태그를 사용하여 텍스트 필드로 SWF 파일과 비트맵을 로드할 수 있습니다. <img src = 'filename.jpg' id = 'instanceName' > 다음 코드와 같이 TextField 인스턴스의 getImageReference() 메서드를 사용하여 위와 같은 방식으로 로드된 내용에 액세스할 수 있습니다. var loadedObject:DisplayObject = myTextField.getImageReference('instanceName'); 하지만 이렇게 로드된 SWF 파일과 이미지는 원래 위치에 있는 샌드박스에 배치됩니다. 텍스트 필드에서 <img> 태그를 사용하여 이미지를 로드할 때, 이미지의 데이터에 대한 액세스는 URL 정책 파일에서 허용됩니다. 다음 코드와 같이 <img> 태그에 checkPolicyFile 속성을 추가하여 정책 파일을 확인할 수 있습니다. <img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' > 텍스트 필드에서 <img> 태그를 사용하여 SWF를 로드할 때 Security.allowDomain() 메서드를 호출하여 SWF 파일의 데이터에 대한 액세스를 허용할 수 있습니다. 텍스트 필드의 <img> 태그를 사용하여 외부 파일을 로드하는 경우(SWF 파일에 포함된 Bitmap 클래스를 사용하는 경우와는 반대), Loader 객체가 자동으로 TextField 객체의 자식으로 생성되고 ActionScript의 Loader 객체를 사용하여 파일을 로드한 것과 마찬가지로 외부 파일이 해당 Loader에 로드됩니다. 이 경우 getImageReference() 메서드에서 자동으로 생성된 Loader를 반환합니다. 호출하는 코드와 동일한 보안 샌드박스에 있기 때문에 이 Loader 객체에 액세스할 때는 별도의 보안 확인이 필요하지 않습니다. 하지만 Loader 객체의 content 속성을 참조하여 로드된 미디어에 액세스하는 경우에는 보안 규칙이 적용됩니다. 내용이 이미지일 경우에는 URL 정책 파일을 구현해야 하고, 내용이 SWF 파일인 경우에는 SWF 파일에 allowDomain() 메서드를 호출하는 코드가 있어야 합니다. Adobe AIR응용 프로그램 샌드박스에서 텍스트 필드에 있는 <img> 태그는 피싱 공격을 방지하기 위해 무시됩니다. 또한 응용 프로그램 샌드박스에서 실행되는 코드는 Security allowDomain() 메서드를 호출하도록 허용되지 않습니다. RTMP 서버를 사용하여 제공된 내용Flash Media Server는 RTMP(Real-Time Media Protocol)를 사용하여 데이터, 오디오 및 비디오를 제공합니다. RTMP URL을 매개 변수로 전달하고 NetConnection 클래스의 connect() 메서드를 사용하여 이 미디어를 로드할 수 있습니다. Flash Media Server는 요청하는 파일의 도메인을 기준으로 연결을 제한하고 내용 다운로드를 금지할 수 있습니다. 자세한 내용은 www.adobe.com/go/learn_fms_docs_kr에서 온라인으로 제공되는 Flash Media Server 설명서를 참조하십시오. BitmapData.draw() 및 SoundMixer.computeSpectrum() 메서드를 사용하여 RTMP 스트림에서 런타임 그래픽 및 사운드 데이터를 추출하려면 해당 서버에 대한 액세스를 허용해야 합니다. 서버측 ActionScript Client.videoSampleAccess 및 Client.audioSampleAccess 속성을 사용하여 Flash Media Server에 있는 특정 디렉토리에 대한 액세스를 허용합니다. 자세한 내용은 서버측 ActionScript 언어 참조 설명서를 참조하십시오. |
|