| 패키지 | flash.system |
| 클래스 | public class LoaderContext |
| 상속 | LoaderContext Object |
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
load() 및 loadBytes() 메서드에서 context 매개 변수로 사용됩니다.
Loader.load() 메서드를 사용하여 SWF 파일을 로드하는 경우 로드된 SWF 파일을 배치할 보안 도메인 및 해당 보안 도메인 내에서 파일을 배치할 응용 프로그램 도메인의 두 가지를 결정해야 합니다. 이러한 선택에 대한 자세한 내용은 applicationDomain 및 securityDomain 속성을 참조하십시오.
Loader.loadBytes() 메서드로 SWF 파일을 로드할 때는 Loader.load()의 경우와 동일한 응용 프로그램 도메인을 선택해야 하지만 Loader.loadBytes()에서는 로드된 SWF 파일을 항상 로드하는 SWF 파일의 보안 도메인에 배치하므로 보안 도메인은 지정할 필요가 없습니다.
SWF 파일 대신 JPEG, GIF 또는 PNG 등의 이미지를 로드할 때는 SecurityDomain 또는 응용 프로그램 도메인은 SWF 파일에만 의미가 있으므로 지정할 필요가 없습니다. 대신 로드된 이미지의 픽셀에 프로그래밍 방식으로 액세스해야 하는지 여부만 결정하면 됩니다. 이러한 경우에는 checkPolicyFile 속성을 참조하십시오.
참고 사항
| 속성 | 다음에 의해 정의됨 | ||
|---|---|---|---|
| applicationDomain : ApplicationDomain = null
Loader.load() 또는 Loader.loadBytes() 메서드에서 사용할 응용 프로그램 도메인을 지정합니다.
| LoaderContext | ||
| checkPolicyFile : Boolean = false
Flash Player에서 객체 자체를 로드하기 전에 로드되는 객체의 서버에서 크로스 도메인 정책 파일을 다운로드할지 여부를 지정합니다.
| LoaderContext | ||
![]() | constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
| Object | |
![]() | prototype : Object
[static]
클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
| Object | |
| securityDomain : SecurityDomain = null
Loader.load() 작업에 사용할 보안 도메인을 지정합니다.
| LoaderContext | ||
| 메서드 | 다음에 의해 정의됨 | ||
|---|---|---|---|
|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
지정된 설정으로 새 LoaderContext 객체를 만듭니다.
| LoaderContext | ||
![]() |
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
| Object | |
![]() |
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
| Object | |
![]() |
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
| Object | |
![]() |
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
| Object | |
![]() |
지정된 객체의 문자열 표현을 반환합니다.
| Object | |
![]() |
지정된 객체의 프리미티브 값을 반환합니다.
| Object | |
| applicationDomain | 속성 |
public var applicationDomain:ApplicationDomain = null
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
Loader.load() 또는 Loader.loadBytes() 메서드에서 사용할 응용 프로그램 도메인을 지정합니다. 이 속성은 이미지 또는 ActionScript 1.0이나 ActionScript 2.0으로 작성된 SWF 파일이 아닌 ActionScript 3.0으로 작성된 SWF 파일을 로드할 때만 사용합니다.
모든 보안 도메인은 ApplicationDomain 객체로 나타내는 하나 이상의 응용 프로그램 도메인으로 분할됩니다. 응용 프로그램 도메인은 보안을 위한 것이 아니며 서로 관련된 ActionScript 코드 단위를 관리하기 위한 것입니다. 다른 도메인에서 SWF 파일을 로드하면서 파일을 다른 보안 도메인에 배치하면 로드된 SWF 파일을 배치할 응용 프로그램 도메인을 선택할 수 없으며, 이러한 응용 프로그램 도메인을 지정해도 무시됩니다. 그러나 SWF 파일이 자신의 도메인에 있거나 SWF 파일을 자신의 보안 도메인으로 가져오는 등 SWF 파일을 자신의 보안 도메인으로 로드하는 경우에는 로드된 SWF 파일의 응용 프로그램 도메인을 선택할 수 있습니다.
자신의 보안 도메인에 있는 응용 프로그램 도메인만 LoaderContext.applicationDomain에 전달할 수 있습니다. 다른 보안 도메인의 응용 프로그램 도메인을 전달하려고 하면 SecurityError 예외가 발생합니다.
네 가지 ApplicationDomain 속성 중 하나를 선택하여 사용할 수 있습니다.
new ApplicationDomain(ApplicationDomain.currentDomain) 구문을 사용합니다. 이렇게 하면 로드된 SWF 파일에서 new MyClassDefinedInParent()와 같이 부모의 클래스를 직접 사용할 수 있습니다. 그러나 부모에서는 이 구문을 사용할 수 없습니다. 부모에서 자식의 클래스를 사용하려면 ApplicationDomain.getDefinition()을 호출하여 가져와야 합니다. 이 방법의 장점은 자식에서 부모에 이미 정의된 클래스와 이름이 같은 클래스를 정의해도 오류가 발생하지 않는다는 것입니다. 자식은 해당 클래스에 대한 부모의 정의를 상속하기만 하며, 자식의 충돌하는 정의는 자식이나 부모에서 ApplicationDomain.getDefinition() 메서드를 호출하여 검색하지 않는 한 사용되지 않습니다.ApplicationDomain.currentDomain을 사용할 때 필요합니다. 로드가 완료되면 부모와 자식이 상대방의 클래스를 직접 사용할 수 있습니다. 자녀가 이미 부모가 정의한 클래스와 같은 이름으로 클래스를 정의하고자 할 경우 부모 클래스가 사용되고 자녀 클래스는 무시하게 됩니다.new ApplicationDomain(null)을 사용할 때 필요합니다. 이렇게 하면 로더와 로드되는 파일이 완전히 분리되므로 충돌이나 가려짐 없이 이름이 같은 클래스의 각 버전을 별도로 정의할 수 있습니다. 이러한 경우 상대방의 클래스를 보려면 ApplicationDomain.getDefinition() 메서드를 호출해야 합니다.new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain)을 사용하면 SWF 파일이 현재 도메인의 부모에 대한 그 상위 부모의 새로운 자식에 로드됩니다.로드가 완료될 때 로드하는 파일이나 로드되는 파일에서는 ApplicationDomain.getDefinition()을 호출하기 위해 자신의 ApplicationDomain이나 상대방의 ApplicationDomain을 찾아야 할 수도 있습니다. 이러한 경우 ApplicationDomain.currentDomain을 사용하여 자신의 응용 프로그램 도메인에 대한 참조를 가져올 수 있습니다. 로드하는 SWF 파일에서는 Loader.contentLoaderInfo.applicationDomain을 통해 로드되는 SWF 파일의 ApplicationDomain에 대한 참조를 가져올 수 있습니다. 로드되는 SWF 파일에서는 자신이 로드된 방식을 알고 있는 경우 로드하는 SWF 파일의 ApplicationDomain 객체에 접근할 수 있습니다. 예를 들어 자식이 기본 방법으로 로드된 경우 ApplicationDomain.currentDomain.parentDomain을 사용하여 로드하는 SWF 파일의 응용 프로그램 도메인을 찾을 수 있습니다.
자세한 내용은 ActionScript 3.0 프로그래밍에서 "클라이언트 시스템 환경" 장의 "ApplicationDomain 클래스" 단원을 참조하십시오.
참고 사항
| checkPolicyFile | 속성 |
public var checkPolicyFile:Boolean = false
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
Flash Player에서 객체 자체를 로드하기 전에 로드되는 객체의 서버에서 크로스 도메인 정책 파일을 다운로드할지 여부를 지정합니다. 이 플래그는 Loader.load() 메서드에 적용되지만 Loader.loadBytes() 메서드에는 적용되지 않습니다.
호출하는 SWF 파일의 자체 도메인 밖에 있는 JPEG, GIF 또는 PNG 이미지를 로드하는 경우 ActionScript에서 해당 이미지의 내용에 액세스하려면 이 플래그를 true로 설정합니다. 이미지 내용에 액세스하는 예로는 Loader.content 속성을 참조하여 Bitmap 객체 가져오기 및 BitmapData.draw() 메서드를 호출하여 로드된 이미지 픽셀의 복사본 가져오기 등이 있습니다. 로드할 때 checkPolicyFile을 지정하지 않고 이러한 작업 중 하나를 시도하면 필요한 정책 파일이 아직 다운로드되지 않았으므로 SecurityError 예외가 발생합니다.
LoaderContext.checkPolicyFile을 true로 설정하여 Loader.load() 메서드를 호출하면 관련된 크로스 도메인 정책 파일이 다운로드되거나 이러한 정책 파일이 없다는 사실이 발견될 때까지 Flash Player에서 URLRequest.url에 지정한 객체가 다운로드되지 않습니다. Flash Player에서는 우선 이미 다운로드된 정책 파일을 확인한 다음 Security.loadPolicyFile() 메서드 호출에서 지정된 대기 중인 정책 파일을 다운로드하고, 마지막으로 URLRequest.url에 해당하는 기본 위치(URLRequest.url과 같은 서버의 /crossdomain.xml)에서 정책 파일을 다운로드합니다. 모든 경우에 지정한 정책 파일이 서버에 있고, 정책 파일의 위치에 따라 URLRequest.url에 있는 객체에 액세스할 수 있으며, 호출하는 SWF 파일의 도메인에서 하나 이상의 <allow-access-from> 태그를 통해 액세스할 수 있도록 허용해야 합니다.
checkPolicyFile을 true로 설정하면 Flash Player에서는 정책 파일 다운로드가 완료되기까지 기다렸다가 Loader.load() 메서드에 지정한 주 다운로드를 시작합니다. 따라서 필요한 정책 파일이 있는 한 Loader 객체의 contentLoaderInfo 속성에서 ProgressEvent.PROGRESS 또는 Event.COMPLETE 이벤트를 수신함과 동시에 정책 파일 다운로드가 완료되고 정책 파일을 사용한 작업을 안전하게 수행할 수 있습니다.
checkPolicyFile을 true로 설정하였는데 관련 정책 파일이 발견되지 않는 경우 SecurityError 예외를 발생시키는 작업을 시도하면 오류가 발생합니다. 그러나 LoaderInfo 객체에서 ProgressEvent.PROGRESS 또는 Event.COMPLETE 이벤트가 전달되면 LoaderInfo.childAllowsParent 속성 값을 확인하여 관련 정책 파일이 발견되었는지 여부를 테스트할 수 있습니다.
로드하는 이미지에 픽셀 수준으로 액세스할 필요가 없는 경우 checkPolicyFile 속성을 true로 설정하지 않는 것이 좋습니다. 이러한 경우 정책 파일을 확인하면 다운로드 시작이 지연되고 네트워크 대역폭이 불필요하게 소비될 수 있어 비효율적이기 때문입니다.
또한 Loader.load() 메서드를 사용하여 SWF 파일을 다운로드하는 경우 checkPolicyFile을 true로 설정하지 말아야 합니다. 이는 SWF 간 권한은 정책 파일이 아닌 Security.allowDomain() 메서드로 제어되므로 SWF 파일을 로드할 때는 checkPolicyFile이 효과가 없기 때문입니다. 이러한 경우 정책 파일을 확인하면 SWF 파일 다운로드가 지연되고 네트워크 대역폭이 불필요하게 소비될 수 있으므로 비효율적입니다. 정책 파일 다운로드는 주 다운로드에 앞서 실행되므로 Flash Player에서는 주 다운로드가 SWF 파일인지 이미지인지를 파악할 수 없습니다.
서버측 HTTP 리디렉션을 사용할 수 있는 URL에서 객체를 다운로드하는 경우 checkPolicyFile을 주의하여 사용해야 합니다. Flash Player에서는 항상 URLRequest.url에 지정된 최초 URL에 해당하는 정책 파일을 가져옵니다. HTTP 리디렉션으로 인해 최종 객체를 다른 URL에서 가져오는 경우, 처음에 다운로드된 정책 파일이 보안 결정에 중요한 URL인 객체의 최종 URL에 적용되지 않을 수도 있습니다. 이러한 경우에는 ProgressEvent.PROGRESS 또는 Event.COMPLETE 이벤트를 받은 후 객체의 최종 URL을 알려 주는 LoaderInfo.url 값을 검사할 수 있습니다. 그런 다음 객체의 최종 URL에 기초한 정책 파일 URL을 사용하여 Security.loadPolicyFile() 메서드를 호출합니다. 그런 다음 LoaderInfo.childAllowsParent 값이 true가 될 때까지 확인합니다.
참고 사항
| securityDomain | 속성 |
public var securityDomain:SecurityDomain = null
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
Loader.load() 작업에 사용할 보안 도메인을 지정합니다. 이 속성은 이미지가 아닌 SWF 파일을 로드할 때만 사용합니다.
보안 도메인을 선택하는 것은 출처가 로드하는 SWF 파일과 다른 도메인(다른 서버)일 수 있는 SWF 파일을 로드하는 경우에만 의미가 있습니다. 자신의 도메인에서 SWF 파일을 로드하면 파일이 항상 자신의 보안 도메인에 배치됩니다. 그러나 다른 도메인의 SWF 파일을 로드할 때는 두 가지 옵션이 있습니다. 로드되는 SWF 파일이 로드하는 SWF 파일의 보안 도메인과 다른 "고유의" 보안 도메인에 배치되도록 할 수 있으며, 이는 기본 옵션입니다. 다른 옵션은 myLoaderContext.securityDomain을 SecurityDomain.currentDomain으로 설정하여 로드되는 SWF 파일이 로드하는 SWF 파일과 같은 보안 도메인에 배치되도록 지정하는 것입니다. 이를 가져오기 로딩이라고 하며, 보안을 위해 로드되는 SWF 파일을 자신의 서버로 복사한 다음 로드하는 것과 같습니다. 가져오기 로딩에 성공하려면 로드되는 SWF 파일의 서버에 로드하는 SWF 파일의 도메인을 신뢰하는 정책 파일이 있어야 합니다.
LoaderContext.securityDomain에는 자신의 보안 도메인만 전달할 수 있습니다. 다른 보안 도메인을 전달하려고 하면 SecurityError 예외가 발생합니다.
자세한 내용은 ActionScript 3.0 프로그래밍의 "보안" 장을 참조하십시오.
참고 사항
| LoaderContext | () | 생성자 |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
지정된 설정으로 새 LoaderContext 객체를 만듭니다. 이러한 설정에 대한 자세한 내용은 이 클래스의 속성 설명을 참조하십시오.
매개 변수checkPolicyFile:Boolean (default = false) — Flash Player에서 객체를 로드하기 전에 크로스 도메인 정책 파일이 있는지 확인할지 여부를 지정합니다.
|
|
applicationDomain:ApplicationDomain (default = null) — Loader 객체에서 사용할 ApplicationDomain 객체를 지정합니다.
|
|
securityDomain:SecurityDomain (default = null) — Loader 객체에서 사용할 SecurityDomain 객체를 지정합니다.
|
참고 사항
이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서
현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/system/LoaderContext.html