일부 ActionScript 3.0 API는 휴대 장치 프로파일로 실행되는 응용 프로그램(예: iPhone에서 실행되는 응용 프로그램)에 사용할 수 없습니다.
동일한 ActionScript 코드를 여러 프로파일(예: 데스크톱 및 모바일) 개발에 사용하는 경우 API 지원 여부를 테스트하는 코드를 사용하십시오. 예를 들어 NativeWindow 클래스는 iPhone 응용 프로그램에서 지원되지 않습니다. iPhone 응용 프로그램은 기본 윈도우를 사용하거나 만들 수 없습니다. 특정 프로파일(예: 데스크톱 프로파일)로 실행되는 응용 프로그램에서 기본 윈도우가 지원되는지 여부를 테스트하려면
NativeWindow.isSupported
속성을 확인하면 됩니다.
다음 표에는 휴대 장치 프로파일에서 지원되지 않는 API가 나와 있습니다. 또한 플랫폼에서 실행 중인 응용 프로그램에서 API가 지원되는지 여부를 확인할 수 있는 속성도 나열되어 있습니다.
API
|
지원 테스트
|
Accessibility
|
Capabilities.hasAccessibility
|
Camera
|
Camera.isSupported
|
DatagramSocket
|
DatagramSocket.isSupported
|
DNSResolver
|
DNSResolver.isSupported
|
DockIcon
|
NativeApplication.supportsDockIcon
|
DRMManager
|
DRMManager.isSupported
|
EncryptedLocalStore
|
EncryptedLocalStore.isSupported
|
HTMLLoader
|
HTMLLoader.isSupported
|
LocalConnection
|
LocalConnection.isSupported
|
Microphone
|
Microphone.isSupported
|
NativeApplication.exit()
|
—
|
NativeApplication.menu
|
NativeApplication.supportsMenu
|
NativeApplication.isSetAsDefaultApplication()
|
NativeApplication.supportsDefaultApplication
|
NativeApplication.startAtLogin
|
NativeApplication.supportsStartAtLogin
|
NativeMenu
|
NativeMenu.isSupported
|
NativeProcess
|
NativeProcess.isSupported
|
NativeWindow
|
NativeWindow.isSupported
|
NativeWindow.notifyUser()
|
NativeWindow.supportsNotification
|
NetworkInfo
|
NetworkInfo.isSupported
|
PDF support
|
HTMLLoader.pdfCapability
|
PrintJob
|
PrintJob.isSupported
|
SecureSocket
|
SecureSocket.isSupported
|
ServerSocket
|
ServerSocket.isSupported
|
Shader
|
—
|
ShaderFilter
|
—
|
StorageVolumeInfo
|
StorageVolumeInfo.isSupported
|
XMLSignatureValidator
|
XMLSignatureValidator.isSupported
|
HTML이나 JavaScript 기반의 AIR 응용 프로그램을 휴대 장치 프로파일로 작성할 수 없습니다.
다음과 같이 일부 ActionScript 3.0 클래스는 부분적으로만 지원됩니다.
파일
iPhone 응용 프로그램은 응용 프로그램 디렉토리와 응용 프로그램 저장소 디렉토리에만 액세스할 수 있습니다. 또한
File.createTempFile()
과
File.createTempDirectory()
를 호출할 수 있습니다. 다른 디렉토리에 액세스하는 작업(예: FileStream read 또는 write 메서드)을 호출하면 IOError 예외가 발생합니다.
iPhone 응용 프로그램은
File.browseForOpen()
메서드가 제공하는 것과 같은 기본 파일 브라우저 대화 상자를 지원하지 않습니다.
Loader
iPhone 응용 프로그램에서는
Loader.load()
메서드를 사용할 수 없습니다. 또한
Loader.load()
메서드로 로드된 SWF 내용에 있는 모든 ActionScript를 실행할 수 없습니다. 그러나 SWF 파일의 에셋(라이브러리에 있는 동영상 클립, 이미지, 글꼴, 사운드 등)은 사용할 수 있으며,
Loader.load()
메서드로 이미지 파일을 로드할 수도 있습니다.
비디오
iPhone의 AIR 응용 프로그램에서는 Sorensen 비디오와 ON2 VP6 비디오만 지원됩니다.
navigateToURL()
메서드를 사용하면 응용 프로그램 외부에서 H.264 비디오를 열 수 있습니다. URL이 비디오를 가리키는 URLRequest 객체를
request
매개 변수로 전달하면 됩니다. 그러면 iPhone의 비디오 플레이어에서 비디오가 실행됩니다.
텍스트 필드
iPhone에서는 텍스트 필드의 글꼴 및 기타 설정에 제한 사항이 있습니다. 자세한 내용은
글꼴 및 텍스트 입력
을 참조하십시오.
지원되지 않는 API 및 ADL을 사용한 디버그
일부 AIR 기능은 iPhone에서 지원되지 않지만 개발 컴퓨터에서 ADL로 응용 프로그램을 테스트할 때는 사용할 수 있습니다. 따라서 ADL로 내용을 테스트할 때 이러한 차이에 유의해야 합니다.
Speex(오디오), H.264/AVC(비디오), AAC(오디오)와 같은 오디오/비디오 코덱은 iPhone에서 실행되는 AIR 응용 프로그램에서는 사용할 수 없지만 데스크톱에서는 정상적으로 작동합니다.
액세스 가능성 및 화면 판독기 지원 API는 Windows에서 ADL로 사용할 때는 작동하지만 iPhone에서는 작동하지 않습니다.
RTMPE 프로토콜은 데스크톱에서 ADL로 사용할 때는 정상적으로 작동하지만 RTMPE 프로토콜을 사용한 NetConnection 연결 시도는 iPhone에서 실패합니다.
Loader 클래스는 ADL로 내용을 실행할 때는 별도 제한 사항 없이 작동하지만 iPhone에서 실행할 때는 ActionScript 바이트코드가 포함된 SWF 내용을 로드하려는 시도가 수행되면 오류 메시지가 표시됩니다.
Shader 인스턴스는 ADL에서 실행되지만 iPhone에서는 Pixel Bender 바이트코드가 해석되지 않아 셰이더가 그래픽 효과를 내지 못합니다.
자세한 내용은
iPhone 응용 프로그램 디버그
를 참조하십시오.