Исправленные ошибки

Дата выпуска: 08.10.12 г.

  • Аварийно завершает работу при навигации по содержимому Flash в Internet Explorer (3328165)
  • Невозможно упаковать программу с помощью ANE в iOS, так как не реализована функция завершения. (3325320)
  • Упаковка завершается неудачно с исключением из-за пустого указателя, когда IPA упаковывается только с помощью реализации по умолчанию в ANE на платформе iOS. (3325321)
  • Данные базы данных стираются перед каждым запуском в iOS Simulator. (3329309)
  • Отладка Wi-Fi в iOS: отладка в iOS не работает, когда выбран сетевой интерфейс «По умолчанию» для целевого проигрывателя AIR3.4 (3325323)

Дата выпуска: 21.08.12 г.

  • Частые сбои Netstream при разъединении (3193417)
  • Проблема остановки воспроизведения потокового аудио в приложениях AIR в ОС Android (3188340)
  • Метод drawWithQuality() неправильно отображает фильтры на устройствах Android (3224928)
  • Не удается запустить сценарий Clipboard.generalClipboard.setData в ОС iOS (3226045)
  • Не удается воспроизвести некоторые видеофайлы FLV в проигрывателе Flash Player в ОС Windows (3187569)
  • В приложениях на основе Flash Player в браузере Firefox в ОС Windows воспроизводится только правый канал аудиозаписи (3289279)
  • Отключение функции блокировки мыши при переходе в полноэкранный интерактивный режим (3174344)
  • Неверное отображение текстовых полей [iOS5] со встроенными шрифтами на мобильных устройствах (3161138)
  • Замирание первого кадра при потоковой передаче содержимого (3207896)
  • Реализована поддержка значков размером 50x50, 100x100, 1024x1024 в описании приложений для iOS (3217144) 
  • Аварийное завершение приложений с собственным расширением в iOS при использовании определенных внешних библиотек и т.д. Libxml2.dylib (3226974) 
  • Некоторое смещение при увеличении изображения для запуска приложения с разрешением 768x1004 или 1024x748 до размеров полноэкранной программы для iPad. (3230762). Новые рекомендации по использованию изображений для запуска можно прочитать здесь
  • Аварийная остановка воспроизведения видеозаписей H264 в iOS при переключении между двумя процессами NetStream, прикрепленными к объекту StageVideo (3206438)
  • Проблема процесса CameraRoll.browseForImage(), что приводит к потере прозрачности и появлению белого цвета (3291312)

Новые возможности

Дата выпуска: 08.10.12 г.

19.-9.12 г. завершилось бета-тестирование iOS6 SDK.

В этом выпуске нет новых функций

Дата выпуска: 21.08.12 г.

  • ActionScript Workers (для Flash Player)
  • Поддержка Sandbox Bridge (для Flash Player)
  • Лицензирование поддержки: расширенные функции Flash Player для игр (для Flash Player)
  • Ограничения Stage3D для ускорения работы графического процессора (для Flash Player и AIR)
  • Поддержка LZMA для ByteArray (для Flash Player и AIR)
  • Улучшения StageVideo attachCamera/Camera (для Flash Player и AIR)
  • Сжатая текстура с поддержкой альфа-канала для архитектуры Stage3D (для Flash Player и AIR)
  • Кодировка DXT (для Flash Player и AIR)
  • Устаревшие API Carbon для AIR (для AIR)
  • Прямое развертывание AIR с использованием ADT (для AIR)
  • Служба уведомлений Push Notifications в iOS (для AIR)
  • Поддержка Ambient AudioPlaybackMode (для AIR)
  • Поддержка исключений в собственных расширениях для iOS (для AIR)
  • Новый параметр в ADT для отображения списка подключенных мобильных устройств (для AIR)
  • Функция ADT для разрешения конфликта символов ANE в iOS (для 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

Выявленные неполадки

Дата выпуска: 21.08.12 г.
  • Matrix3D's transformVector() неправильно изменяет компонент w (3190677)
  • [iOS] В iOS 4.3 неправильно отображаются сжатые структуры CubeMap с альфа-каналом (3282166)
  • Проблемы процесса navigateToURL из-за некорректного функционирования символов верхней половины таблицы ASCII в приложениях AIR Desktop (3161093)
  • [iOS] В некоторых приложениях периодически происходит сбой установки файла IPA совместно с AIR 3.4 с ошибкой «Ошибка установки: PackageExtractionFailed» (3220974)
  • При использовании флага –hideAneLibSymbols во время упаковки приложения для iOS параметры редактора связей могут применяться для связи со средой и библиотекой. Такие параметры, как –ios_version_min, следует использовать с файлами ANE platform.xml
Adobe продолжает работать над версией iOS 6 Beta SDK и исправлять ошибки. Текущие выявленные неполадки
  • В iOS 6 Beta не выводится запрос на разрешение сбора данных о местоположении (3291688)
  • Приложения AIR, упакованные в AIR 3.4 SDK и iOS 6 Beta SDK, не поддерживают интерфейс AutoOrients при изменении ориентации экрана на устройствах iPod и iPhone(3286288)
  • Приложения, упакованные в AIR 3.4 SDK и iOS 6 Beta SDK, не поддерживают тег aspectRatio на устройствах с ОС iOS 5.1 (3286320)

Улучшения безопасности

Бюллетень безопасности Затронутые продукты
 APSB12-22  Flash Player Desktop Windows® и Mac

 Flash Player AndroidTM

Новые возможности: обзор


Потоки ActionScript Workers

  • С появлением в ActionScript потоков Workers и объекта Flash Runtime разработчики Flash-приложений могут переложить определенные задачи, например, операции с большим временем задержки и долгосрочные вычисления, на «второстепенных рабочих».  Объекты Background Workers запускаются параллельно, чтобы высвободить больше машинных ресурсов и избежать замирания элементов интерфейса. 
  • Примечание. Для полного использования функций ActionScript Workers и отладки рабочих объектов необходимо установить следующую версию Flash Builder. Бета-версия нового выпуска Flash Builder будет представлена в августе.
  • Примечание. Поддержка общего доступа к памяти (свойство ByteArray.shareable) будет реализована в новом выпуске Flash Player.

Поддержка Sandbox Bridge

  • Поддержка Sandbox Bridge позволяет раскрывать определенные объекты или функции ActionScript для кросс-доменных сообщений между SWF-файлами. Эта возможность уже доступна в AIR и появится в этом выпуске Flash Player.

Лицензирование поддержки: расширенные функции Flash Player для игр (Flash Player)

  • Появление расширенных функций для игр означает, что теперь Flash Player может взаимодействовать не только с рабочими потоками ActionScript.  В этом выпуске реализована поддержка расширенных функций контроля лицензии интерфейсов XC API (совместное использование памяти домена API и аппаратное ускорение API для класса Stage 3D) во Flash Player. Эти API-интерфейсы используются приложениями сторонних разработчиков, например Unity и проектом Adobe — компилятором Project "Alchemy" C/C++. Дополнительные сведения см. на странице www.adobe.com/go/fpl_ru.

Ограничения Stage3D для ускорения работы графического процессора

  • Возможность использования аппаратного ускорения в среде Flash Player зависит от даты выпуска драйвера видеокарты. В предыдущих выпусках существовала поддержка драйверов, выпущенных позже 1 января 2008 года. В этом выпуске будет реализована поддержка драйверов, выпущенных позже 1 января 2006 года. Для аппаратного ускорения содержимого, использующего свойство wmode=direct (или renderMode=direct для AIR), требуется драйвер графической карты, выпущенный позже 01.01.2006 (если возможно). Это относится к объектам Stage3D и API-интерфейсам [StageVideo|StageVideo]. Помимо этого, мы добавили новый «ограниченный» профиль для класса Stage3D, что позволит ускорить ваше содержимое на ранее неподдерживаемых наборах микросхем Intel® GMA. Дополнительные сведения о новом профиле и его использовании см. ниже.

Поддержка LZMA для ByteArray

  • Помимо возможности сжатия ByteArray методом zlib мы представляем дополнительный тип сжатия, основанный на LZMA, для сжатия данных внутри ByteArray с помощью методов ByteArray.compress() и ByteArray.uncompress().

Сжатая текстура с поддержкой альфа-канала для архитектуры Stage3D (для Flash Player и AIR)

  • Реализована поддержка прозрачных изображений для сжатых структур (в формате ATF).

Усовершенствования StageVideo attachCamera/Camera

  • Эта функция применяет новый метод к объектам StageVideo , что позволяет направить видеопоток с камеры на объект StageVideo, используя для визуализации графический процессор, а не преобразователь развертки. Возможность использовать ускорение графического процессора позволяет проигрывателю обрабатывать видеопоток с камеры значительно быстрее.

Кодировка DXT

  • Эта функция запускает кодирование несжатых структур в формат DXT во время рабочего цикла, поэтому структуру можно загрузить в графический процессор в виде сжатой структуры DXT.
    Функция доступна с рабочего стола в Flash Player 11.4 и AIR 3.4

Устаревшие интерфейсы API Carbon для AIR

  • Начиная с ОС Mac OS X 10.8, Apple больше не будет поддерживать интерфейсы API Carbon. Поэтому в этом выпуске мы удалили из AIR эти API-интерфейсы и другие устаревшие коды, чтобы соответствовать ОС Mac OS X 10.8.
Прямое развертывание AIR с использованием ADT
  • Эта новая функция позволяет разработчикам развертывать приложения AIR на устройствах iOS, не прибегая к iTunes или XCode. Обратите внимание, что для использования этой функции необходимо установить iTunes 10.5.0 или более поздней версии.

Функция Push Notifications в iOS

  • Эта функция использует службу уведомлений APNS (Apple Push Notification Service) и провайдера (сторонний сервер, обращающийся к APN) для создания уведомлений. Представлен новый пакет — flash.notifications. Доставка уведомлений зависит только от службы Apple Push Notification Service. APNS не гарантирует доставку уведомлений. Apple также рекомендует подписываться на уведомления при каждом запуске приложения. При каждой подписке клиентского приложения на уведомления служба APNS предоставляет ему идентификационный маркер, пересылаемый на сторонний сервер или провайдеру, который отправляет уведомления удаленно.

Поддержка Ambient AudioPlaybackMode

  • В AIR 3.4 пользователи могут указывать для элемента AudioPlaybackMode значение AMBIENT, а не только VOICE и MEDIA. Новый AudioPlaybackMode даст пользователям возможность аппаратно отключать звук на устройствах iPhone и iPad. Чаще всего эта функция используется в игровых приложениях, когда пользователь может отключить звук игры и слушать музыку в приложении, запущенном в фоновом режиме. Аппаратное отключение звука в режиме Ambient поддерживается только на устройствах iOS. На устройствах AndroidTM режим Ambient будет иметь те же параметры, что и режим Media.

Поддержка исключений в собственных расширениях для iOS

  • Для работы с собственными расширениями в iOS теперь можно использовать исключения C++ и Objective-C. Расширение само должно определить все исключения, указанные в коде. Среда выполнения не будет определять исключения, появившиеся из-за разрешений.

Параметр ADT для отображения списка подключенных мобильных устройств

  • В ADT добавлен новый параметр -devices для отображения списка подключенных устройств iOS и AndroidTM. Пользователи могут указывать этот параметр вместо adb для получения списка устройств AndroidTM и параметр idb для получения списка устройств iOS. Обратите внимание, что для использования этой функции необходимо установить iTunes 10.5.0 или более поздней версии.

Параметр ADT для разрешения конфликта символов ANE в iOS

  • Если разработчики приложений будут использовать несколько собственных расширений, полученных из различных источников, то общее имя символа в двух файлах ANE может привести к ошибке дублирования символа в файлах объектов при упаковке или к сбою во время рабочего цикла. Для решения этой проблемы был введен новый параметр ADT option,  -hideAneLibSymbols, значение которого можно указать при упаковке приложения. Он может принимать значения yes или no, где yes скрывает символы библиотеке каждого файла ANE от других файлов ANE.

Новые возможности: рекомендации по использованию

Начало работы с Workers

Чтобы начать использовать функцию рабочих объектов, просмотрите примеры в файле flashplayer11-4_p1_ex_concurrency.zip.

Внимание

В таблице ниже приведены значения объема памяти, занимаемой одним рабочим объектом в MacOS и Windows®:

Число рабочих объектов

Mac BookPro
Mac OS X 10.7.3 
2,4 ГГц Intel® CoreTM i7 
8 ГБ ОЗУ 
Mac OSX 10.7 
память (МБ)

Компьютер PC 
Windows® 7 32-разраядная версия 
Intel® Xeon Quad core 3,2 ГГц 
2048 МБ ОЗУ 
Windows® 7 
память (МБ)

Ноутбук Lenovo T61 
Windows® XP 
Intel® CoreTM Duo Core 2,2 ГГц 
2014 МБ ОЗУ 
Windows® XP 
память (МБ)

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-интерфейсы будут недоступны при работе во второстепенном рабочем объекте. Любая попытка создать экземпляр из этих интерфейсов приведет к появлению ошибки 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. Возвращаемые значения должны максимально совпадать с документацией. Например, если в обычных условиях метод возвращает массив с элементами, то при выполнении из второстепенного объекта он вернет пустой массив.

  • flash.accessibility.Accessibilty
    • active // всегда возвращает false
    • updateProperties(); // — холостая команда
  • flash.desktop.NativeApplication** свойства

·          

  • flash.display.Stage
    • allowsFullScreen // всегда возвращает false
    • stage3Ds // всегда возвращает пустой вектор
    • stageVideos // всегда возвращает пустой вектор
    • 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 // возвращает пустой массив []
      • systemIdleMode // setter является холостой командой

Ограничения профиля Stage3D для ускорения работы графического процессора

В Context3D введен новый параметр — «profile».  Этот параметр включен в функцию Stage3D.requestContext3D(). Ему можно присвоить одно из двух значений — Context3DProfile.BASELINE («baseline»), которое вернет стандартный Context3D как в предыдущих выпусках, или Context3DProfile.BASELINE_CONSTRAINED («baselineConstrained»), которое вернет новый Context3D, способный включить аппаратное ускорение для ранее неподдерживаемых графических процессоров. Ограниченный профиль позволяет авторам создавать содержимое Stage3D для старых систем, используя такие графические карты, как Intel® GMA 900/950 в ОС Windows® .  Компромисс, связанный с поддержкой устаревшего аппаратного обеспечения, заключается в том, что при использовании этого профиля возможности архитектуры Stage3D будут ограничены, чтобы обеспечить нормальную работу содержимого на таком оборудовании.  Такие карты, как GMA 900/950, поддерживают шейдер пикселей/вершин только версии 2.0, что накладывает следующие ограничения на данный профиль Stage3D.

  • Ограничение до 64 АЛУ и 32 текстурных команд на шейдер.
  • Только 4 косвенных метода для чтения структур на шейдер.
  • Меньшее количество постоянных/переменных/временных переменных на шейдер.
  • Нет поддержки предикатного регистра. Он оказывает влияние на параметры sln/sge/seq/sne и должен быть заменен составными командами mov/cmp, доступными в ps_2_0 (это будет сделано незаметно, за счет использования большего количества сегментов команд по сравнению с ps_2_x).
  • Буфер невидимых поверхностей Context3D всегда должен находиться в пределах соответствующей стадии.
  • Экземпляр проигрывателя Flash Player может включать только одну копию Context3D, запущенного в ограниченном профиле.
  • Как и в случае с мобильными устройствами, классические элементы списка отображения flash не будут обновляться, пока видно содержимое ограниченного Stage3D, если не будет вызван метод Context3D.present().

«Profile» является вторым дополнительным параметром метода requestContext3D. Разработчики могут запросить профиль "baselineConstained" для запуска Context3D в ограниченном режиме, как показано ниже: 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); 

Прямое развертывание AIR с использованием ADT

Установка:
для установки 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> 

Функция Push Notifications в iOS

1)     Идентификатор приложения (тег с идентификатором) в app-xml должен совпадать с идентификатором приложения, указанным в сертификате предоставления мобильных услуг, для которого включена служба push-уведомлений.
2)     Включите в дескриптор приложения параметр aps-environment:

<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 с включенной службой Push Notifications необходимо задать для параметра aps-environment значение production. Разработчик должен использовать профиль обеспечения с включенной функцией Push Notifications. Проведите перекрестную проверку допусков подписанного приложения с помощью следующей команды.

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
}

В пакете клиентского приложения можно сохранить строки предупреждения, переведенные для каждого поддерживаемого языка локализации. Провайдер указывает свойства loc-key и loc-args в словаре приложений пакета уведомлений. Когда устройство получает уведомление, оно использует свойства словаря приложений, чтобы найти и оформить строку, локализованную для текущего языка, а затем вывести ее для пользователя.

Локализованные строки должны быть сохранены в файле под названием Localizable.strings в соответствующей папке <язык>.lproj folder. У каждой строки этого файла есть ключ и локализованное значение строки, а также спецификаторы формата для определения значений переменных. Когда приложение запрашивает определенную строку, оно получает доступ к локализованному ресурсу для языка, выбранного пользователем.

Для получения локализованных удаленных уведомлений в приложение AIR необходимо включить файл Localizable.strings с локализованными парами ключевых значений, который должен находиться в папке <язык>/lproj в IPA. Чтобы добавить в IPA файл Localizable.strings, разработчику всего лишь нужно включить соответствующую папку <язык>.lproj folder в команду adt следующим образом:

adt -package -target ipa-app-store -provisioning-profile <MobileProvisioningCertificate> -storetype pkcs12 -keystore <Certificate.p12> -storepass <PASSWORD> app.xml sample.swf en.lproj es.lproj fr.lproj

Обратите внимание, что папка lproj должна находиться в текущем каталоге, чтобы adt мог слиться с файлами в соответствующей папке lproj. Если папка lproj представлена как a/b/c/en.lproj, то adt добавит ее как a/b/c/en.lproj, и приложение не сможет получить доступ к локализованным парам ключевых значений.

Параметр ADT для отображения списка подключенных мобильных устройств

Для получения информации о подключенных устройствах iOS и AndroidTM можно использовать следующую команду:

adt -devices -platform (android | ios)

При вводе этой команды появляется следующий отклик:

Список подключенных устройств:

Handle   DeviceClass   DeviceUUID                                                    DeviceName

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone


Лицензирование поддержки: расширенные функции Flash Player для игр (только для Flash Player)

Для совместного использования доменной памяти (используемой некоторыми сторонними приложениями и компилятором Project "Alchemy" C/C++) с аппаратным ускорением Stage3D требуется лицензия. При совместном использовании обеих функций в отладчике содержимого проигрывателя Flash Player (отладочный проигрыватель) будет отображаться водяной знак. Это требование лицензирования не применяется к содержимому, которое использует аппаратное ускорение Stage3D без доменной памяти (или доменную память без Stage3D), и не применяется к содержимому, развертываемому с помощью Adobe AIR. 

Решение проблемы потери устройства

Нелицензированное содержимое будет продолжать работать, автоматически переключив Stage3D на программную визуализацию. Чтобы убедиться, что содержимое корректно справляется с потерей ресурса графической карты, проанализируйте событие Event.CONTEXT3D_CREATE на объекте Stage3D для повторной инициализации графики содержимого. Имитировать событие потери устройства можно, вызвав метод context3D.dispose(). (Все содержимое Stage3D должно корректно реагировать на потерю устройства, которая может произойти также и при блокировке компьютера или активации заставки экрана.)

Параметр ADT для разрешения конфликта символов ANE в iOS

Для упаковки приложений с помощью этой функции можно использовать следующую команду:

 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 необходимо задать в качестве целевого объекта SWF версии 17, включив в компилятор Flex дополнительный аргумент компилятора: -swf-version=17. Ниже приведены инструкции. Если вы используете Adobe Flex SDK, сделайте следующее.

  • Загрузите новый файл playerglobal.swc для Flash Player 11.4
  • Загрузите Flex 4.5.1 SDK (4.5.1.21328) из таблицы Flex 4.5 SDK table.
  • Установите блок в свою среду разработки
  • В модуле Flash Builder создайте новый проект ActionScript : Файл -> Новый -> Проект ActionScript.
  • Откройте панель свойств проекта (щелкните правой кнопкой мыши и выберите «Свойства»). В списке слева выберите компилятор ActionScript.
  • Выберите функцию «Настроить Flex SDK» в верхнем правом углу, чтобы загрузить проект в модуль Flex build 21328. Нажмите кнопку «ОК».
  • Задайте в качестве цели проекта SWF версии 17
  • Откройте панель свойств проекта (щелкните правой кнопкой мыши и выберите «Свойства»). В списке слева выберите компилятор ActionScript.
  • Добавьте к строке «Дополнительные аргументы компилятора» следующее: -swf-version=17. В этом случае выходные объекты SWF будут файлами SWF версии 17. Если вы компилируете на командной строке, а не в Flash Builder, вы должны добавить такой же аргумент компилятора.
  • Убедитесь, что в вашем браузере установлен новый Flash Player 11.4.

Разработка для AIR 3.4 Обновление до пространства имен AIR 3.4

Для использования новых возможностей и интерфейсов прикладного программирования AIR 3.4 необходимо обновить файл дескриптора приложения, обеспечив поддержку пространства имен версии 3.4. Если для разработки вашего приложения не требуются новые возможности и интерфейсы прикладного программирования AIR 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 прочитайте этот документ.


История версий среды выполнения

 

 Дата выпуска Версия среды выполнения Улучшения безопасности
  21 августа 2012 г.  Flash Player Desktop (Windows, Mac):  11.4.402.265
 AIR (Windows, Mac, мобильные устройства): 3.4.0.2540
 AIR SDK: 3.4.0.2540
 APSB12-19

Эта работа лицензируется в соответствии с лицензией Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported  На посты, размещаемые в Twitter™ и Facebook, условия Creative Commons не распространяются.

Правовые уведомления   |   Политика конфиденциальности в сети Интернет