다음 코드와 같이
<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()
메서드를 호출하도록 허용되지 않습니다.