수정된 문제

릴리스 날짜: 2012년 10월 8일

  • Internet Explorer에서 Flash 컨텐츠를 탐색할 때 충돌 발생(3328165)
  • iOS에서 ANE를 사용하여 응용 프로그램을 패키지화할 수 없으므로 파이널라이저 함수를 구현하지 않습니다. (3325320)
  • iOS에서 ANE의 기본 구현만 사용하여 IPA를 패키지화하려 했으나 null 포인터 예외가 발생하면서 패키지화에 실패했습니다. (3325321)
  • 데이터베이스 데이터가 iOS 시뮬레이터에서 시작될 때마다 지워집니다. (3329309)
  • iOS상의 WIFi 디버깅: 대상 Player AIR3.4에 네트워크 인터페이스가 "기본값"으로 선택되었을 때 iOS에서 디버깅이 작동하지 않음(3325323)

릴리스 날짜: 2012년 8월 21일

  • 연결 해제 시 NetStream의 작동이 간헐적으로 중단됩니다(3193417).
  • AIR Android에서 라이브 오디오 스트리밍을 중지하는 경우 문제가 발생합니다(3188340).
  • drawWithQuality()가 Android 장치에서 필터를 올바르게 렌더링하지 않습니다(3224928).
  • Clipboard.generalClipboard.setData가 iOS에서 작동하지 않습니다(3226045).
  • 일부 FLV 비디오 내용이 Windows의 Flash Player에서 재생되지 않습니다(3187569).
  • Windows의 Firefox에서 Flash Player 기반 응용 프로그램 실행 시 오른쪽 오디오만 재생됩니다(3289279).
  • 전체 화면 대화형 모드로 전환한 후 마우스 잠금 기능이 비활성화됩니다(3174344).
  • [iOS5] 포함된 글꼴이 있는 TextField가 휴대 장치에서 제대로 표시되지 않습니다(3161138).
  • 일부 라이브 스트리밍 내용의 첫 번째 프레임이 중지됩니다(3207896).
  • 이제 응용 프로그램 설명자에서 iOS 응용 프로그램에 대해 50x50, 100x100, 1024x1024의 응용 프로그램 아이콘이 지원됩니다(3217144).
  • Libxml2.dylib와 같은 특정 외부 라이브러리 사용 시 iOS에서 기본 확장을 사용하는 응용 프로그램의 작동이 때때로 중단됩니다(3226974).
  • 해상도가 768x1004 또는 1024x748인 시작 이미지가 전체 화면 iPad 응용 프로그램에 패키지화되어 있는 경우 일부 편차가 관찰됩니다(3230762). 시작 이미지를 사용하기 위한 새로운 지침을 여기에서 참조할 수 있습니다.
  • iOS에서 H264 비디오가 한 StageVideo 객체에 연결된 NetStream 2개 사이에 전환할 때 작동이 중단됩니다(3206438).
  • CameraRoll.browseForImage()의 문제로 투명도 손실이 발생하여 흰색으로 표시됩니다(3291312).

새로운 기능

릴리스 날짜: 2012년 10월 8일

2012년 9월 19일부로 iOS6 SDK는 더 이상 베타가 아닙니다.

이 릴리스에는 새로운 기능이 포함되어 있지 않습니다.

릴리스 날짜: 2012년 8월 21일

  • ActionScript 워커(Flash Player)
  • Sandbox Bridge 지원(Flash Player)
  • 라이센스 지원: 게임용 Flash Player Premium 기능(Flash Player)
  • GPU 성능 확장을 위한 Stage3D "제한" 프로파일(Flash Player 및 AIR)
  • LZMA의 ByteArray 지원(Flash Player 및 AIR)
  • StageVideo attachCamera/Camera 기능 향상(Flash Player 및 AIR)
  • 알파 지원을 통해 Stage3D용으로 압축된 텍스처(Flash Player 및 AIR)
  • DXT 인코딩(Flash Player 및 AIR)
  • 사용되지 않는 AIR용 Carbon API(AIR)
  • ADT를 사용한 직접 AIR 배포(AIR)
  • iOS의 푸시 알림(AIR)
  • Ambient AudioPlaybackMode(AIR)
  • iOS용 기본 확장에서 예외 지원(AIR)
  • ADT에서 연결된 모바일 장치의 목록을 표시하는 새로운 옵션(AIR)
  • iOS에서 ANE 기호 충돌을 해결하는 ADT 옵션(AIR)

이전 릴리스에서 추가된 기능을 비롯한 Flash Player와 AIR의 전체 기능 목록은 여기의 문서를 참조하십시오.

릴리스된 버전

결과물 릴리스된 버전
 Flash Player Desktop(Windows®/Mac)  11.4.402.287
 AIR(Windows®, Mac, 모바일)  3.4.0.2710
 AIR SDK  3.4.0.2710

알려진 문제

릴리스 날짜 2012년 8월 21일
  • Matrix3D의 transformVector()는 w 구성 요소를 비정상적으로 변환합니다(3190677).
  • [iOS] iOS 4.3에서 알파를 포함한 압축된 큐브맵은 정상적으로 렌더링되지 않습니다(3282166).
  • 상위 ascii 문자를 사용한 navigateToURL 발행은 AIR 데스크톱 응용 프로그램에서 정상적으로 작동하지 않습니다(3161093).
  • [iOS] 일부 컨텐츠에서 AIR 3.4를 사용해 .ipa 파일을 설치할 때 설치 오류: PackageExtractionFailed가 발생해 실패할 수 있습니다(3220974).
  • iOS용 응용 프로그램을 패키징하는 동안 –hideAneLibSymbols 플래그를 사용할 경우 프레임워크 및 라이브러리 연결 링커 옵션과 -ios_version_min과 같은 옵션만 ANE platform.xml 파일에 사용해야 합니다.
Adobe는 지속적으로 iOS 6 베타 SDK에서 문제를 해결해 나갈 예정입니다. 현재 알려진 문제:
  • iOS 6 베타에서 지리적 위치 사용 권한 대화 상자가 표시되지 않음(3291688)
  • AIR 3.4 SDK 및 iOS 6 베타 SDK와 함께 패키지로 구성된 AIR 응용 프로그램이 iPod 및 iPhone에서 상하 반전 시 AutoOrients를 지원하지 않음(3286288)
  • AIR 3.4 SDK 및 iOS 6 베타 SDK와 함께 패키지로 구성된 모든 응용 프로그램이 iOS 5.1 장치에서 aspectRatio 태그를 지원하지 않음(3286320)

보안 향상

보안 게시판 영향을 받는 결과물
 APSB12-22  Flash Player Desktop Windows® & Mac

 Flash Player AndroidTM

새로운 기능: 개요


ActionScript 워커

  • ActionScript와 Flash Runtime에 워커가 도입되면서, 이제 Flash 개발자들이 지연율이 높은 작업이나 실행하는 데 오래 걸리는 계산과 같은 특정 작업을 "백그라운드 워커"로 오프로드할 수 있게 되었습니다. 이러한 백그라운드 워커는 동시에 실행되어 시스템 리소스를 보다 효율적으로 활용하고 UI 작동 중단과 같은 문제를 방지합니다. 
  • 참고: ActionScript 워커를 최대한 활용하고 워커를 디버그할 수 있으려면, Flash Builder의 다음 버전이 필요합니다. Flash Builder의 이 다음 버전은 8월 중에 공개 베타를 통해 제공될 예정입니다.
  • 참고: 공유 메모리 지원(ByteArray.shareable)이 앞으로 릴리스 예정인 Flash Player로 옮겨졌습니다.

Sandbox Bridge 지원

  • Sandbox 브리징은 특정 ActionScript 객체 또는 기능을 도메인 간 SWF-SWF 통신에서 노출할 수 있도록 합니다. 이 기능은 AIR에서 이미 지원되며 이번 릴리스에서 Flash Player로 이식됩니다.

라이센스 지원: 게임용 Flash Player Premium 기능(Flash Player)

  • 게임용 Premium 기능이 추가되면서 Flash Player를 대상으로 한 비ActionScript 워크플로우가 가능해졌습니다. 이번 릴리스는 Flash Player에서 XC API의 Premium 기능 라이센스 제어(도메인 메모리 API와 Stage 3D 하드웨어 가속 API를 조합하여 사용)를 지원합니다. 이러한 API는 Unity와 같은 일부 타사 도구와 Adobe의 Project "Alchemy" C/C++ 컴파일러에 사용됩니다. 자세한 내용은 www.adobe.com/go/fpl_kr을 참조하십시오.

GPU 성능 확장을 위한 Stage3D "제한" 프로파일

  • Flash Player는 비디오 카드 드라이버의 날짜에 따라 하드웨어 가속 사용 여부를 제어합니다. 이전 릴리스에서 2008년 1월 1일 이전의 드라이버에 대한 지원을 제공했습니다. 이번 릴리스에서는 2006년 1월 1일 이전의 드라이버까지 적용되도록 변경됩니다. wmode=direct(또는 renderMode=direct for AIR)를 사용하는 컨텐츠는 가능한 한 2006년 1월 1일자 이후의 그래픽 카드 드라이버에서 하드웨어 가속이 적용되어야 합니다. 이는 Stage3D 및 [StageVideo|StageVideo] API에 적용됩니다. 또한 이전에 블랙리스트에 포함된 Intel® GMA 칩셋에서 하드웨어 가속된 상태로 컨텐츠를 실행할 수 있도록 "제한" 프로파일이라는 새로운 Stage3D용 프로파일을 추가했습니다. 이 새로운 프로파일과 그 활용 방법에 대한 자세한 내용은 아래를 참조하십시오.

ByteArray에 대한 LZMA 지원

  • ByteArray의 zlib 압축 외에 ByteArray.compress() 및 ByteArray.uncompress()를 통해 LZMA를 기반으로 ByteArray 내의 데이터를 압축하는 추가 압축 유형을 새롭게 지원합니다.

알파 지원을 통해 Stage3D용으로 압축된 텍스처(Flash Player 및 AIR)

  • 이제 압축 텍스처(ATF 파일 형식)에 대해 투명 이미지가 지원됩니다.

StageVideo attachCamera/Camera 기능 향상

  • 이 기능은 Actionscript 코드에서 StageVideo 객체에 대해 카메라로부터 전달되는 비디오 스트림을 StageVideo 객체로 보내도록 지시하여 GPU를 래스터화하는 데가 아니라 렌더링하는 데 활용할 수 있게 합니다. 따라서 GPU 가속이 가능한 경우 카메라에서 전달되는 비디오 스트림을 처리할 때 플레이어의 처리 속도가 크게 높아집니다.

DXT 인코딩

  • 압축되지 않은 텍스처를 런타임에 DXT 형식으로 인코딩하여 해당 텍스처를 압축된 DXT 텍스처로 GPU에 업로드할 수 있게 하는 기능입니다.
    데스크톱에서 Flash Player 11.4와 AIR 3.4 모두에 사용할 수 있습니다.

사용되지 않는 AIR용 Carbon API

  • Mac OS X 10.8부터 Apple은 더 이상 Carbon API를 지원하지 않습니다. 따라서 Mac OSX 10.8과 일관되게 이러한 API와 기타 사용되지 않는 코드가 이 릴리스부터 AIR에서 제거됩니다.
ADT를 사용한 직접 AIR 배포
  • 개발자가 iTunes 또는 XCode를 사용하지 않고도 AIR 응용 프로그램을 iOS 장치에 배포할 수 있도록 하는 새로운 기능입니다. 이 기능을 사용하려면 iTunes 10.5.0 이상을 사용자의 시스템에 설치해야 합니다.

iOS 푸시 알림

  • APNS(Apple Push Notification Service)와 공급자(APN과 통신하는 타사 서버)를 사용하여 알림을 생성하는 기능입니다. flash.notifications라는 새로운 패키지가 추가되었습니다. 푸시 알림 배달은 전적으로 Apple Push Notification Service에 의해 좌우되며, APNS는 푸시 알림의 배달을 보장하지 않습니다. 또한 Apple은 응용 프로그램을 실행할 때마다 푸시 알림을 구독하도록 권장하고 있습니다. 클라이언트 응용 프로그램이 푸시 알림을 구독할 때마다 APNS는 클라이언트 응용 프로그램에 토큰 ID를 제공하며, 이 토큰 ID는 원격 알림을 전송할 타사 서버 또는 공급자로 보내져야 합니다.

Ambient AudioPlaybackMode

  • AIR 3.4 사용자는 VOICE와 MEDIA 외에 AMBIENT라는 AudioPlaybackMode 옵션을 추가로 사용할 수 있습니다. 사용자는 이 새로운 AudioPlaybackMode를 사용하여 응용 프로그램이 iPhone/iPad에 있는 "하드웨어 음소거 스위치"에 반응하도록 강제 설정할 수 있습니다. 이 Ambient 재생 모드가 가장 큰 효과를 발휘하는 사용 사례는 게임 응용 프로그램 사용자가 게임 사운드를 음소거하고 배경에서 다른 응용 프로그램의 음악을 재생하는 경우입니다. Ambient 모드에서는 iOS 장치의 경우에만 하드웨어의 음소거 스위치에 따라 오디오가 작동합니다. AndroidTM 장치에서는 Ambient 모드가 Media 모드와 동일하게 작동합니다.

iOS용 기본 확장에서 예외 지원

  • 이제 iOS의 기본 확장에 C++ 및 Objective-C 예외를 모두 사용할 수 있습니다. 코드에서 발생하는 모든 예외를 Catch할지는 해당 확장에 의해 결정됩니다. 런타임은 확장에서 발생하는 예외를 Catch하지 않습니다.

연결된 장치 목록을 표시하는 ADT 옵션

  • 연결된 iOS/AndroidTM 장치의 목록을 표시하는 '-devices'라는 새로운 옵션이 ADT에 추가되었습니다. 사용자는 AndroidTM 장치의 adb, iOS 장치의 idb 대신 이 옵션을 사용하여 각각의 장치를 목록에 표시할 수 있습니다. 이 기능을 사용하려면 iTunes 10.5.0 이상을 사용자의 시스템에 설치해야 합니다.

iOS에서 ANE 기호 충돌을 해결하는 ADT 옵션

  • 응용 프로그램 개발자가 다양한 리소스에서 얻은 여러 가지 기본 확장을 사용할 경우, 2개의 ANE에 있는 공용 기호 이름으로 인해 객체 파일에 중복된 기호가 있다는 패키징 오류가 발생하거나 런타임에 작동이 중단될 수 있습니다. 이 문제를 방지하기 위해 응용 프로그램을 패키징할 때 지정할 수 있는 -hideAneLibSymbols라는 새로운 ADT 옵션이 추가되었습니다. 이 옵션에는 yes 또는 no라는 값이 사용되며, 값이 yes일 경우 각 ANE의 라이브러리 기호를 다른 ANE에 노출되지 않도록 숨깁니다.

새로운 기능: 사용 지침

워커 사용 시작하기

워커 기능을 사용하려면 먼저 flashplayer11-4_p1_ex_concurrency.zip 파일의 예제를 참고하십시오.

참고

아래는 MacOS와 Windows®에서 측정된 워커당 메모리 사용량입니다.

워커 수

Mac BookPro
Mac OS X 10.7.3 
2.4GHz Intel® CoreTM i7 
8GB RAM 
Mac OSX 10.7 
메모리(MB)

PC 시스템 
Windows® 7 32비트 
Intel® Xeon Quad core 3.2GHz 
2048MB RAM 
Windows® 7 
메모리(MB)

Lenovo T61 랩톱 
Windows® XP 
Intel® CoreTM Duo Core 2.2GHz 
2014MB RAM 
Windows® XP 
메모리(MB)

0

10 

4.78 

4.39 

1

15.75 

9.33 

8.59 

2

21.47 

13.8 

12.77 

3

27.28 

18.35 

16.39 

4

33 

22.8 

20.67 

5

38.81 

26.39 

24.58 

6

44.25 

31.1 

28.8 

7

50 

35.62 

32.67 

8

55.89 

40.16 

35.75 

9

61.7 

44.73 

39.6 

10

67.47 

48.83 

43.9

비원시 워커의 컨텍스트 내에서(즉, 백그라운드에서) 코드가 실행되는 경우 일부 flashruntime API의 비헤이비어가 기본 스레드에서 실행되는 Actionscript 코드와 달라집니다. 백그라운드 워커 내에서 사용할 경우 다르게 동작하는 API는 다음과 같습니다.

작동하지 않는 API

다음 API는 백그라운드 워커 내에서 사용할 수 없습니다. 이러한 API의 인스턴스를 생성하려 하면 "이 컨텍스트에서는 이 기능을 사용할 수 없습니다"라는 메시지와 함께 IllegalOperationError가 발생합니다. errorID는 모든 인스턴스에서 동일하므로, 개발자가 이 값을 제거할 수 있습니다.

  • flash.desktop.Clipboard // 생성자를 호출할 경우 오류 발생, generalClipboard를 호출할 경우 null 반환
  • flash.desktop.NativeDragManager // isSupported를 사용할 경우 false 반환
  • flash.desktop.Updater // isSupported를 사용할 경우 false 반환
  • flash.display.NativeMenu // isSupported를 사용할 경우 false 반환
  • flash.display.NativeWindow // isSupported를 사용할 경우 false 반환
  • flash.display.ToastWindow // stage.window가 정의되지 않으므로 인스턴스에 액세스할 수 없음
  • flash.display.Window // stage.window가 정의되지 않으므로 인스턴스에 액세스할 수 없음
  • flash.external.ExtensionContext // createExtensionContext()를 사용할 경우 항상 null을 반환하거나 오류 발생
  • flash.external.ExternalInterface // available을 사용할 경우 false 반환
  • flash.html.* // HTMLLoader.isSupported를 사용할 경우 false 반환
  • flash.media.CameraRoll // supportsAddBitmapData 및 supportsBrowseForImage를 사용할 경우 false 반환
  • flash.media.CameraUI // isSupported를 사용할 경우 false 반환
  • flash.media.StageWebView // isSupported를 사용할 경우 false 반환
  • flash.net.drm.* // DRMManager.isSupported를 사용할 경우 false 반환
  • flash.printing.* // PrintJob.isSupported를 사용할 경우 false 반환
  • flash.security.XMLSignatureValidator // isSupported를 사용할 경우 false 반환
  • flash.system.IME // isSupported를 사용할 경우 false 반환
  • flash.system.SystemUpdater // 생성자를 호출할 경우 오류 발생
  • flash.text.StageText // 생성자를 호출할 경우 오류 발생
  • flash.ui.ContextMenu // isSupported를 사용할 경우 false 반환
  • flash.ui.GameInput // isSupported를 사용할 경우 false 반환
  • flash.ui.Mouse // 모든 메서드가 작동하지 않음, 'cursor' 속성 설정이 작동하지 않음

API의 비헤이비어 변화

다음 API는 백그라운드 워커 내에서 실행할 경우 비헤이비어가 바뀝니다. 메서드에 대한 일부 호출은 작동하지 않고, 일부는 IllegalOperationError 또는 설명서에 나와 있는 API에 따라 그에 상응하는 오류를 발생시킵니다. 반환 값은 최대한 설명서와 일치해야 합니다. 예를 들어 정상적인 상황에서 요소를 포함한 Array를 반환하는 메서드의 경우 백그라운드 워커 내에서 실행하면 빈 Array를 반환합니다.

  • flash.accessibility.Accessibilty
    • active // 항상 false 반환
    • updateProperties(); // 작동 안 함
  • flash.desktop.NativeApplication** 속성

·          

  • flash.display.Stage
    • allowsFullScreen // 항상 false 반환
    • stage3Ds // 항상 빈 Vector 반환
    • stageVideos // 항상 빈 Vector 반환
    • supportsOrientationChange // 항상 false 반환
    • wmodeGPU // 항상 false 반환
  • flash.filesystem.File
    • browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // 작동 안 함
  • flash.net.FileReference** browse(), download(), save() // 작동 안 함, 항상 false 반환
  • flash.net.FileReferenceList** browse() // 작동 안 함, 항상 false 반환
  • flash.system.System
    • ime // 항상 null 반환
    • exit() // 해당 백그라운드 워커를 강제로 중지하고 종료
    • setClipboard() // 작동 안 함
  •  
    • 메서드
      • activate(), clear(), copy(), cut(), paste(), selectAll() // 작동 안 함
      • exit() // 해당 백그라운드 워커를 강제로 중지하고 종료
    • 이벤트
      • 기존 이벤트만 지원 – 이 이벤트는 워커가 종료될 때 전달됨(수명 주기 메서드 호출 시 발생하거나, "기본" 워커, 즉 런타임이 종료될 때 발생, 백그라운드 워커에서 취소할 수 없음)
    •  
      • supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // 모두 false 반환
      • activeWindow // null 반환
      • autoExit // setter가 작동하지 않음
      • idleThreshold // setter가 작동하지 않음
      • openedWindows // 빈 Array [] 반환
      • systemIdleMode // setter가 작동하지 않음

GPU 성능 확장 - 제한 Stage3D 프로파일

"profile"이라는 Context3D에 대한 새로운 매개 변수가 추가되었습니다. 이 매개 변수는 Stage3D.requestContext3D() 함수에 지정되며, 이전 릴리스에서도 사용되었던 일반적인 Context3D를 반환하는 Context3DProfile.BASELINE("baseline") 값 또는 이전에 지원되지 않았던 GPU에서 하드웨어 가속을 적용하여 실행할 수 있는 새로운 Context3D인 Context3DProfile.BASELINE_CONSTRAINED("baselineConstrained") 값으로 설정할 수 있습니다. 컨텐츠 작성자는 제한 프로파일을 사용하여 Windows®에서 Intel® GMA 900/950과 같은 그래픽 카드를 사용하는 이전 시스템을 대상으로 Stage3D 컨텐츠를 작성할 수 있습니다. 단, 제한 프로파일을 사용하여 저사양 하드웨어를 대상으로 한 컨텐츠를 작성할 경우 해당 하드웨어에서 이 컨텐츠가 정상적으로 실행되도록 하기 위해 Stage3D 기능이 제한됩니다. GMA 900/950과 같은 카드는 pixel/vertex shader 버전 2.0만 지원하므로 제한 프로파일에서 Stage3D에 대해 다음과 같은 제한 사항이 적용됩니다.

  • 셰이더당 ALU 명령이 64개, 텍스처 명령이 32개로 각각 제한됩니다.
  • 셰이더당 텍스처 읽기 지시문을 4개만 사용할 수 있습니다.
  • 셰이더당 상수/변수/temp가 더 적은 수로 제한됩니다.
  • 예상 레지스터가 지원되지 않습니다. 이는 sln/sge/seq/sne에 영향을 미치며 ps_2_0에서 사용 가능한 compound mov/cmp 명령으로 대체해야 합니다(ps_2_x에 비해 더 많은 명령을 사용하여 내부적으로 처리됨).
  • Context3D 백 버퍼가 항상 스테이지의 경계 내에 있어야 합니다.
  • Flash Player 인스턴스 내에서는 제한 프로파일에서 실행되는 Context3D의 인스턴스가 하나만 허용됩니다.
  • 모바일 버전과 마찬가지로 제한된 Stage3D 컨텐츠가 표시되는 동안에는 Context3D.present()를 호출하지 않으면 기존 Flash Display List 요소가 업데이트되지 않습니다.

'Profile'은 requestContext3D 메서드의 두 번째 선택적 매개 변수입니다. 아래 API에서 보듯이 개발자는 제한 모드로 Context3D를 가져오도록 프로파일 "baselineConstained"를 요청할 수 있습니다. function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
예제:

stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED); 

ADT를 사용한 직접 AIR 배포

설치:
장치에 IPA를 설치하려면 다음 명령을 사용하십시오.
adt -installApp -platform ios -device <deviceID> -package <ipa-file> 
제거:
장치에서 IPA를 제거하려면 다음 명령을 사용하십시오.
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id> 
연결된 장치의 <deviceID>는 다음 명령에 의해 나열되는 ‘Handle’ 값입니다.
@SDKLocation/bin/adt –devices –platform ios 
<app-id>는 응용 프로그램 설명자 파일(app.xml)에서 <id> 태그 안에 지정됩니다. Flash Builder를 사용하여 프로젝트를 생성하면 기본적으로 응용 프로그램 이름과 동일하게 됩니다. 

데스크톱에 장치가 하나만 연결되어 있는 경우 '-device <deviceID>' 인수를 생략해도 응용 프로그램이 연결된 장치에서 설치/제거됩니다.
adt -installApp -platform ios -package <ipa-file> 

iOS 푸시 알림

1)     app-xml의 응용 프로그램 식별자(id 태그)는 푸시 알림에 사용되는 모바일 프로비저닝 인증서의 응용 프로그램 식별자와 동일해야 합니다.
2)     응용 프로그램 설명자에 aps-environment entitlement를 포함하십시오.

<iPhone>
    <Entitlements>
            <![CDATA[
                          <key>get-task-allow</key>
                          <true/>
                          <key>aps-environment</key>
                          <string>development</string>
                          <key>keychain-access-groups</key>
                          <array>
                         <string>KEYCHAIN_ACCESS_GROUP</string>
                          </array>
                ]]>
    </Entitlements>
</iPhone>

푸시 알림이 설정된 상태로 App Store로 응용 프로그램을 전송하려면 aps-environment를 production으로 설정해야 합니다. 푸시 알림을 사용하는 경우 개발자는 프로비저닝 프로파일을 사용해야 합니다. 다음 명령을 사용하여 서명된 응용 프로그램의 Entitlement를 확인하십시오.

codesign -d --entitlements - <YourAppName>.app

3) 푸시 알림을 지원하려면 응용 프로그램에 새로 추가된 flash.notification 클래스를 사용하십시오. 예를 들면 다음과 같습니다.

// empty Vector List is returned on platforms on which none of the notification styles is supported.
if (RemoteNotifier.supportedNotificationStyles != " " )
{
var preferredNotificationStyles:Vector.<String> = new Vector.<String>();
preferredNotificationStyles.push(NotificationStyle.ALERT);
preferredNotificationStyles.push(NotificationStyle.SOUND);
preferredNotificationStyles.push(NotificationStyle.BADGE);
var subscribeOptions:RemoteNotifierSubscribeOptions = new RemoteNotifierSubscribeOptions();
subscribeOptions.notificationStyles = preferredNotificationStyles;
var rn:RemoteNotifier = new RemoteNotifier();
rn.addEventListener(RemoteNotificationEvent.TOKEN,tokenEventHandler);
rn.addEventListener(RemoteNotificationEvent.NOTIFICATION,notificationEventHandler);
rn.addEventListener(StatusEvent.STATUS,statusHandler);
// calling subscribe method without any subscribe options automatically subscribes for all notification styles supported on that platform
rn.subscribe(subscribeOptions);
}
function tokenEventHandler(event:RemoteNotificationEvent):void
{
// AIR developer can send the tokenId received in event.data to his server via URL request
var urlRequest:URLRequest;
var urlLoader:URLLoader = new URLLoader();
var urlString:String = "https://url.com/api/device_tokens/" + event.tokenId;
urlRequest = new URLRequest(urlString);
urlRequest.authenticate = true;
urlRequest.method =URLRequestMethod.PUT;
URLRequestDefaults.setLoginCredentialsForHost("url.com",<userId>,<password>);
urlLoader.load(urlRequest);
urlLoader.addEventListener(IOErrorEvent.IOERROR, onError);
urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.addEventListener(HTTPStatusEvent.HTTPSTATUS,onStatus);
}
public function notificationEventHandler(e:RemoteNotificationEvent):void
{
//Code to handle the data received from the RemoteNotificationEvent event of type Notification
  for (var x:String in e.data)
            {
                trace("\n"+ x + ":  " + e.data[x]);
            }
}
public function statusHandler(e:StatusEvent):void
{
        //code to handle the event when subscription is failed
}
private function onError(e:IOErrorEvent):void
{
         //Code to handle the error which occurred while making url request by the url loader
}
private function onComplete(e:Event):void
{
            //Code to know what if the url request made by the url loader is complete        }
}   
private function onStatus(e:HTTPStatusEvent):void
{
           //Code to know the http status of the url request made by the url loader
}

클라이언트 응용 프로그램은 지원하는 각 언어별로 번역된 경고 메시지 문자열을 번들에 저장할 수 있습니다. 공급자가 알림 페이로드의 aps 사전에 loc-key 및 loc-args 속성을 지정합니다. 장치에 알림이 수신되면 장치는 이 aps 사전 속성을 사용하여 현재 언어로 지역화된 문자열을 찾아 서식을 지정한 후 사용자에게 표시합니다.

지역화된 문자열은 반드시 해당 <language>.lproj 폴더의 Localizable.strings가라는 파일 내에 있어야 합니다. 이 파일의 각 항목에는 키와 지역화된 문자열 값이 있으며, 이 문자열은 변수 값을 대체할 서식 지정자를 포함할 수 있습니다. 응용 프로그램에서 특정 문자열을 요청하면 현재 사용자가 선택한 언어로 지역화된 리소스를 받게 됩니다.

AIR 응용 프로그램에서 지역화된 원격 알림을 수신하려면 <language>/lproj 폴더에 있는 Localizable.strings 파일의 ipa 내에 지역화된 키 값 쌍이 있어야 합니다. ipa에 Localizable.strings를 추가하려면 다음과 같이 adt 명령에 해당 <language>.lproj 폴더를 추가하면 됩니다.

adt -package -target ipa-app-store -provisioning-profile <MobileProvisioningCertificate> -storetype pkcs12 -keystore <Certificate.p12> -storepass 를 참조하십시오.ASSWORD> app.xml sample.swf en.lproj es.lproj fr.lproj

adt가 해당 lproj 폴더로 파일을 병합하려면 lproj 폴더가 현재 디렉토리에 있어야 합니다. lproj 폴더가 a/b/c/en.lproj로 지정된 경우 adt는 이 폴더를 a/b/c/en.lproj로 추가하므로 응용 프로그램이 지역화된 키 값에 액세스할 수 없게 됩니다.

연결된 장치 목록을 표시하는 ADT 옵션

다음 명령을 사용하여 연결된 iOS/AndroidTM 장치에 대한 정보를 가져올 수 있습니다.

adt -devices -platform (android | ios)

이 명령을 사용하면 다음과 같은 출력이 생성됩니다.

List of attached devices:

Handle   DeviceClass   DeviceUUID                                                    DeviceName

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone


라이센스 지원: 게임용 Flash Player Premium 기능(Flash Player만 해당)

도메인 메모리(일부 타사 도구와 Project "Alchemy" C/C++ 컴파일러에 사용됨)를 Stage3D 하드웨어 가속과 함께 사용하려면 라이센스가 필요합니다. 두 기능을 결합하여 사용할 경우 Flash Player 컨텐츠 디버거(디버그 플레이어)에 정보 워터마크가 표시됩니다. 도메인 메모리나 Stage3D 하드웨어 가속 중 하나만 사용할 때는 이 라이센스 요구 사항이 컨텐츠에 적용되지 않으며, Adobe AIR를 사용하여 배포하는 모든 컨텐츠에도 적용되지 않습니다

장치 손실 처리

Stage3D가 소프트웨어 렌더링으로 자동 전환되면서 라이센스가 부여되지 않은 컨텐츠도 계속 실행됩니다. 컨텐츠에서 그래픽 카드 리소스 손실이 올바르게 처리되도록 하려면 Stage3D 객체에서 Event.CONTEXT3D_CREATE 이벤트를 수신하여 컨텐츠의 그래픽을 다시 초기화해야 합니다. context3D.dispose()를 호출하여 장치 손실 이벤트를 시뮬레이션할 수 없습니다. (모든 Stage3D 컨텐츠는 컴퓨터가 잠기거나 화면 보호기가 작동할 때도 발생할 수 있는 장치 손실을 처리해야 합니다.)

iOS에서 ANE 기호 충돌을 해결하는 ADT 옵션

다음 명령을 실행하면 이 옵션을 사용하여 응용 프로그램을 패키지로 구성할 수 있습니다.

 adt -package –target ( ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc | ipa-test-interpreter | ipa-debug-interpreter | ipa-test-interpreter-simulator | ipa-debug-interpreter-simulator ) ( CONNECT_OPTIONS? | LISTEN_OPTIONS? ) ( -sampler )? –hideAneLibSymbols (yes|no) SIGNING_OPTIONS <output-package> ( <app-desc> PLATFORM-SDK-OPTION? FILE-AND-PATH-OPTIONS | <input-package> PLATFORM-SDK-OPTION? )

예를 들면 다음과 같습니다.

 adt -package –target ipa-test
–hideAneLibSymbols yes
–provisioning-profile xxx.mobileprovision
–storetype pkcs12 –keystore Certificates.p12 –storepass password
Sample.ipa sample-app.xml sample.swf
–extdir ANEFolder

yes 값을 사용하면 기호 충돌이 방지되고 no를 사용하면 이전과 같이 동작합니다. 이 기능은 Flash Builder/Flash Professional에서 아직 지원되지 않습니다.

DXT 인코딩


var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false);
texture1.uploadFromBitmapData(myPNGBitmap.bitmapData);  // or you can upload from a byteArray as well
 
var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false);
texture2.uploadFromByteArray(myPNGByteArray);


압축 텍스처 및 알파


[Embed( source = "rsc/MyCompressed.atf", mimeType="application/octet-stream")]
private var MyATF_DXT1:Class;
 
[Embed( source = "rsc/MyCompressedAlpha.atf", mimeType="application/octet-stream")]
private var MyATF_DXT5:Class;
 
//-----------------------------------------------------------------------------------
 
var fragmentShaderForCompressedTexture:String                          = "tex oc, v0, fs0 <2d, dxt1>";
var fragmentShaderForCompressedAlphaTexture:String              = "tex oc, v0, fs1 <2d, dxt5>";
 
//-----------------------------------------------------------------------------------
 
var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false);
texture1.uploadCompressedTextureFromByteArray(new MyATF_DXT1() as ByteArray, 0);
 
var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false);
texture2.uploadCompressedTextureFromByteArray(new MyATF_DXT5() as ByteArray, 0);

저작 지침

Flash Player 11.4용 컨텐츠 저작

새로운 Flash Player를 사용하려면 Flex 컴파일러에 -swf-version=17이라는 추가 컴파일러 인수를 전달하여 SWF 버전 17을 대상으로 지정해야 합니다. 자세한 방법은 아래와 같습니다. Adobe Flex SDK를 사용하는 경우:

  • Flash Player 11.4용의 새 playerglobal.swc를 다운로드합니다.
  • Flex 4.5 SDK 표에서 Flex 4.5.1 SDK(4.5.1.21328)를 다운로드합니다.
  • 개발 환경에 빌드를 설치합니다.
  • Flash Builder에서 새 ActionScript 프로젝트를 만듭니다(파일 -> 새로 만들기 -> ActionScript 프로젝트).
  • [속성] 패널을 엽니다(마우스 오른쪽 버튼을 클릭하고 '속성' 선택). 왼쪽의 목록에서 [ActionScript 컴파일러]를 선택합니다.
  • 오른쪽 상단에 있는 'Flex SDK 구성' 옵션을 사용하여 프로젝트가 Flex 빌드 21328를 가리키도록 지정합니다. [확인]을 클릭합니다.
  • SWF 버전 17을 대상으로 하도록 프로젝트 구성
  • [속성] 패널을 엽니다(마우스 오른쪽 버튼을 클릭하고 '속성' 선택). 왼쪽의 목록에서 [ActionScript 컴파일러]를 선택합니다.
  • '추가 컴파일러 인수' 입력에 -swf-version=17을 추가합니다. 그러면 SWF 버전 17을 대상으로 한 SWF가 출력됩니다. Flash Builder가 아니라 명령줄에서 컴파일할 경우에도 동일한 컴파일러 인수를 추가해야 합니다.
  • 브라우저에서 새 Flash Player 11.4 빌드를 반드시 설치해야 합니다.

AIR 3.4용 컨텐츠 저작 AIR 3.4 네임스페이스로 업데이트

새 AIR 3.4 API와 비헤이비어에 액세스하려면 응용 프로그램 설명자 파일을 3.4 네임스페이스로 업데이트해야 합니다. 응용 프로그램에 AIR 3.4 API 및 비헤이비어가 필요하지 않은 경우 네임스페이스를 업데이트하지 않아도 됩니다. 단, 새로운 3.4 버전의 기능을 사용하지 않더라도 이번 릴리스부터는 모든 사용자가 AIR 3.4 네임스페이스를 사용하기를 권장합니다. 네임스페이스를 업데이트하려면 응용 프로그램 설명자에서 xmlns 특성을 <application xmlns="http://ns.adobe.com/air/application/3.4">로 변경하십시오.

버그 보고

버그가 발견된 경우에는 Flash Player 및 Adobe AIR에 버그를 알려 주십시오. 버그 데이터베이스.

Flash Player 및 AIR는 그래픽 하드웨어를 사용하여 H.264 비디오를 디코딩하고 재생합니다. 어떤 비디오 문제는 특정 그래픽 하드웨어 및 드라이버에서만 재현됩니다. 비디오 관련 문제를 보고할 때는 문제를 재현하고 조사할 수 있도록 그래픽 하드웨어 및 드라이버와 함께 운영 체제와 브라우저(Flash Player 사용 시)를 반드시 확인해야 합니다. 보고할 때는비디오 재생 문제 보고 지침에 나와 있는 정보를 반드시 알려 주시기 바랍니다. 참고: 지원 센터에 접수되는 전자 메일이 너무 많아서 모든 요청에 응답하지 못할 수도 있습니다.

Adobe® Flash Player®와 AIR®를 사용해 주시고 시간을 내어 피드백을 보내 주셔서 감사합니다!

시스템 요구 사항

최신 Flash Player와 AIR의 시스템 요구 사항은 여기에서 관련 문서를 참조하십시오.


런타임 버전 기록

 

 릴리스 날짜 런타임 버전 보안 향상
2012년 8월 21일  Flash Player Desktop(Windows, Mac): 11.4.402.265
AIR(Windows, Mac, Mobile): 3.4.0.2540
AIR SDK: 3.4.0.2540
 APSB12-19

이 작업에는 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License의 라이센스가 부여되었습니다.  Twitter™ 및 Facebook 게시물은 Creative Commons 약관을 적용받지 않습니다.

법적 고지 사항   |   온라인 개인 정보 보호 정책