11 июня 2013 г. Встречайте Flash Player 11.7 и AIR 3.7. Это плановое обновление. Данный выпуск содержит исправления нескольких ошибок и улучшения безопасности.
- Камера не работает для stageVideo (iOS) (3558247)
- Нет возможности отключить аппаратное ускорение (3560209)
- Нет возможности использовать аудиоформат WAV в качестве резервного варианта (3553459)
- Улучшения работы в песочнице
- Предотвращение резервного копирования iCloud для объектов с общим доступом (iOS)
- Включение режима визуализации с использованием центрального процессора для выбранных устройств (iOS)
- Внешнее размещение вторичных SWF-файлов (iOS)
- Библиотека Game Input API (Android)
Выпуск | Текущая версия |
Flash Player Desktop (Mac) | 11.7.700.225 |
Flash Player Desktop (Win) | 11.7.700.224 |
AIR Desktop (Mac) | 3.7.0.2100 |
AIR Desktop (Win) | 3.7.0.2090 |
AIR Mobile | 3.7.0.2090 |
AIR SDK & Compiler (Mac) | 3.7.0.2100 |
AIR SDK & Compiler (Win) | 3.7.0.2090 |
- С некоторыми новыми драйверами графических процессоров AMD визуализация выполняется некорректно в определенных ситуациях (3431502)
- Невозможно использовать веб-камеру совместно с Microsoft Kinect (3482709)
- В AIR for iOS не удается добавить в пакет локализованные имена SWF-файлов (3518195)
- В AIR for iOS передача фокуса компоненту Spark TextArea может приводить к усечению текста (3514889)
- При наличии длинного описания приложения в диалоговом окне установки AIR кнопки могут быть невидимыми (3515305)
- Небольшая задержка при циклическом воспроизведении видео в FLVPlayback (3515066)
- Большие растровые изображения, отображаемые с уменьшением масштаба, некорректно отрисовываются при публикации (3520589)
- В AIR пользовательские элементы контекстного меню генерируют избыточные события (3493614)
- В браузере Chrome не удается переключить микрофоны во время выполнения (3493587)
- В браузере Internet Explorer при прокручивании содержимого Flash за пределы видимой области, может искажаться звук (3520586)
- Звук AAC искажается при подключении микрофона с функцией AEC (3523551)
Предотвращение резервного копирования iCloud для объектов с общим доступом (iOS)
В настоящее время в приложениях AIR для iOS у разработчиков отсутствует способ предотвращения резервного копирования данных общих локальных объектов службой Apple iCloud. В AIR 3.7 в класс ActionScript SharedObject добавлено новое статическое свойство «preventBackup», позволяющее разработчикам обойти это ограничение. Это свойство можно использовать только с пространствами имен версии 3.7 или более поздней (swf-version=>20). Установка этого свойства в значение «истина» предотвратит резервное копирование всех общих объектов. По умолчанию значение этого свойства — «ложь». Данное свойство будет работать только на устройствах с ОС iOS 5.1 или более поздней версии.
var mySO:SharedObject; mySO = SharedObject.getLocal("test"); mySO.data.userName = "developer"; mySO.data.itemNumbers = new Array(1,2,3); SharedObject.preventBackup = true; mySO.flush();
Использование визуализации с помощью CPU на выбранных устройствах и визуализации с помощью GPU на остальных устройствах (iOS)
Для устройств iOS был добавлен новый тег <forceCPURenderModeForDevices>, который позволяет принудительно включить режим визуализации с помощью CPU для выбранных устройств iOS, оставив режим визуализации (renderMode) GPU для остальных устройств. Эта функция может быть использована в случае, когда режим визуализации с помощью графического процессора приводит к нехватке памяти на устройствах с более простым оборудованием (например, iPad 1 или iPod 4).
Это значит, что если указать <renderMode> GPU </renderMode> и <forceCPURenderModeForDevices> iPhone1 iPad1 </forceCPURenderModeForDevices>, то на всех устройствах iOS, отличных от iPad1 и iPhone1 параметр renderMode будет иметь значение «GPU».
Обратите внимание, что этот тег в настоящее время применяется только к ОС iOS. Данный тег необходимо размещать в разделе параметров, специфических для платформы, под тегом iPhone.
<iPhone> <InfoAdditions> <![CDATA[ <key>UIDeviceFamily</key> <array> <string>1</string> <string>2</string> </array> <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>YES</string> ]]> </InfoAdditions> <forceCPURenderModeForDevices> iPhone3,1 iPad </forceCPURenderModeForDevices> </iPhone>
Под тегом iPhone добавлен тег <forceCPURenderModeForDevices>, содержащий список моделей устройств, разделенных пробелами. Примеры допустимых наименований моделей приведены ниже.
"iPod4,1" // iPod Touch Fourth Generation "iPod5,1" // iPod Touch Fifth Generation "iPhone2,1" // iPhone 3GS "iPhone3,1" // iPhone 4 "iPhone3,2" // iPhone 4 CDMA "iPhone4,1" // iPhone 4S "iPhone5,1" // iPhone 5 "iPad1,1" // iPad "iPad2,1" // iPad 2 "iPad2,2" // iPad 2 (GSM) "iPad2,3" // iPad 3 (CDMA) "iPad2,4" // iPad 3 (CDMAS) "iPad2,5" // iPad Mini Wifi "iPad3,1" // iPad 3 (WIFI) "iPad3,2" // iPad 3 (CDMA) "iPad3,3" // iPad 3 GSM "iPad3,4" // iPad 4 (Wifi)
Внешнее размещение вторичных SWF-файлов (iOS)
Разработчики приложений теперь могут размещать вторичные SWF-файлы на внешнем сервере и загружать их по требованию в соответствии с логикой приложения. Вторичный SWF-файл, содержащий любой код ABC в режиме AOT, который ранее работал в локально-упакованном SWF-файле, теперь будет работать и в случае внешней загрузки SWF.
Разработчику нужно будет изменить адрес URLRequest загрузчика адресом внешнего очищенного SWF. Пример URL-запроса для случая использования этой функции приведен ниже.
private var externalSwfUrl:String= "http://www.xyz.com/ExternalSwf.swf"; private var urlRequest:URLRequest = new URLRequest(externalSwfUrl);
Чтобы включить данную функцию, необходимо указать текстовый файл, содержащий подробную информацию о SWF-файлах, которые должны быть очищены и размещены на внешнем сервере. В этом текстовом файле разработчик должен указать пути к SWF-файлам (по одному на строке) с внешним размещением. Пример текстового файла с перечислением SWF-файлов приведен ниже.
assets/Level1.swf assets/Level2.swf assets/Level3/asset/Level3.swf
Ссылку на этот текстовый файл нужно добавить в тег <externalSwfs>, вложенный в тег <iPhone> дескриптора приложения, как показано ниже.
<iPhone> . . <externalSwfs>assets/SampleSWFInfoFile.txt</externalSwfs> . . </iPhone>
Во время создания пакета ADT разработчику необходимо указать данный текстовый файл, как обычный ресурс, вместе с набором SWF-файлов, перечисленных в текстовом файле. Пример команды ADT для случая использования этой функции приведен ниже.
adt -package -target ipa-app-store -provisioning-profile <Provisioning Profile> -storetype pkcs12 -keystore <Certificate> -storepass <Password> ResultantIPA.ipa SampleMainSwf-app.xml SampleMainSwf.swf assets/SampleSWFInfoFile.txt assets/Level1.swf assets/Level2.swf assets/Level3/asset/Level3.swf
В ходе создания пакета IPA ADT извлекает код ActionScript из всех дочерних SWF-файлов, указанных в текстовом файле, добавляет его к окончательному исполняемому файлу и переносит очищенные SWF-файлы в подпапку «externalStrippedSwfs» текущего рабочего каталога. Структура каталогов внутри папки «externalStrippedSwfs» совпадает с той, которая указана в текстовом файле. Сгенерированный очищенный SWF-файл можно разместить на внешнем веб-сервере.
Ниже приведен работающий пример кода ActionScript, загружающий с внешнего сервера вторичный SWF-файл, который получен с использованием описанной выше процедуры.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; public class SampleMainSwf extends Sprite { private var externalLoader:Loader; private var url:String= "http://www.xyz.com/Level1.swf"; private var urlRequest:URLRequest = new URLRequest(url); private var ldrContext:LoaderContext; public function SampleMainSwf() { externalLoader = new Loader(); externalLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); externalLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler); ldrContext=new LoaderContext(false,ApplicationDomain.currentDomain,null); try { externalLoader.load(urlRequest, ldrContext); } catch(e:Error) { trace("Error ID : "+e.errorID+"\nError Message : "+e.message); } } private function completeHandler(e:Event):void { addChild(externalLoader); } private function errorHandler(e:IOErrorEvent):void { trace("In IO ErrorEvent Handler"); } } }
Примечание.
1. В текущих выпусках Flash Builder 4.7/Flash Professional CS6 эта функция не поддерживается. Для того чтобы разрешить создание очищенных SWF-файлов, предназначенных для размещения на внешнем сервере, необходимо использовать средства командной строки для создания пакетов ADT.
2. Загрузка вторичных SWF-файлов Flex вызывает неожиданное завершение приложения.
Библиотека GameInput API (Android)
Библиотека GameInput API предоставляет приложениям интерфейс для взаимодействия с подсоединенными игровыми устройствами ввода (джойстиками, геймпадами, рукоятками и т. п.). Существует широкий спектр игровых устройств ввода, у каждого из которых разные возможности и разные элементы управления. Данная библиотека поддерживается только на устройствах с ОС Android 4.1 или более поздней версии. Данная библиотека реализована таким образом, чтобы обеспечивать работу с произвольными (в том числе потенциально неизвестными) игровыми устройствами ввода.
Данную функцию можно использовать только с пространством имен версии 3.7 или более поздней, и для ее работы необходима версия SWF не ниже 20.
private var gameInput:GameInput; public function TestGameInput() { trace("GameInput.isSupported - "+ GameInput.isSupported); trace("GameInput.numDevices - "+ GameInput.numDevices); gameInput = newGameInput(); gameInput.addEventListener(GameInputEvent.DEVICE_ADDED, inputDeviceAddedEvent); gameInput.addEventListener(GameInputEvent.DEVICE_REMOVED, inputDeviceRemovedEvent); function inputDeviceRemovedEvent(e:GameInputEvent):void { trace("inputDeviceRemovedEvent - "+ e.device); } function inputDeviceAddedEvent(e:GameInputEvent):void { trace("inputDeviceAddedEvent - "+ e.device); getDeviceInformation(e.device); } function getDeviceInformation(device:GameInputDevice):void { trace("device.enabled - "+ device.enabled); trace("device.id - "+ device.id); trace("device.name - "+ device.name); trace("device.numControls - "+ device.numControls); trace("device.sampleInterval - "+ device.sampleInterval); for(var i:Number=0; i < device.numControls; i++) { var control:GameInputControl = device.getControlAt(i); getControlInformation(control); control.addEventListener(Event.CHANGE, changeEvent); } } function changeEvent(e:Event):void { var control:GameInputControl = e.target as GameInputControl; getControlInformation(control); } function getControlInformation(control:GameInputControl):void { trace("control.device - "+ control.device); trace("control.value - "+ control.value); trace("control.minValue - "+ control.minValue); trace("control.maxValue - "+ control.maxValue); trace("control.id - "+ control.id); } }
Разработка для Flash Player 11.7
Для использования нового выпуска Flash Player необходимо задать в качестве целевого объекта SWF версии 20, включив в компилятор Flex дополнительный аргумент компилятора: -swf-version=20. Ниже приведены инструкции. Если вы используете Adobe Flex SDK, сделайте следующее.
- Загрузите новый файл playerglobal.swc для Flash Player 11.7
- Загрузите 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 версии 20
- Откройте панель свойств проекта (щелкните правой кнопкой мыши и выберите «Свойства»). В списке слева выберите компилятор ActionScript.
- Добавьте к строке «Дополнительные аргументы компилятора» следующее: -swf-version=20. В этом случае выходные объекты SWF будут файлами SWF версии 20. Если вы компилируете на командной строке, а не в Flash Builder, вы должны добавить такой же аргумент компилятора.
- Убедитесь, что в вашем браузере установлен новый Flash Player 11.7.
Разработка для AIR 3.7 Обновление до пространства имен AIR 3.7
Для использования новых возможностей и интерфейсов прикладного программирования AIR 3.7 необходимо обновить файл дескриптора приложения, обеспечив поддержку пространства имен версии 3.7. Если для разработки вашего приложения не требуются новые возможности и интерфейсы прикладного программирования AIR 3.7, вам не обязательно обновлять пространство имен. Вместе с тем, мы рекомендуем всем пользователям начать работу с пространством имен AIR 3.7, даже если вы еще не используете его новые возможности. Чтобы обновить пространство имен, измените атрибут xmlns в дескрипторе приложения на: <application xmlns="http://ns.adobe.com/air/application/3.7">
Нашли ошибку? Отправьте сведения об ошибке в базу данных ошибок Flash Player и Adobe AIR.
Flash Player и AIR могут использовать графическое аппаратное обеспечение для декодирования и воспроизведения видео H.264. Могут появляться проблемы обработки видео, воспроизведение которых возможно только с использованием определенного графического аппаратного обеспечения и драйвера. При сообщении о проблеме с видео необходимо указать сведения о графическом аппаратном обеспечении и драйвере, а также версию операционной системы и браузера (при использовании Flash Player), чтобы можно было воспроизвести и проанализировать проблему. Включите эту информацию, как описано в инструкциях по сообщению о проблемах с воспроизведением видео. Примечание. Из-за большого количества получаемых электронных писем мы не можем отвечать на каждый запрос.
Благодарим вас за использование Adobe® Flash Player® и AIR® и за время, потраченное на написание отзыва!
Для получения информации о системных требованиях для установки последней версии Flash Player прочитайте этот документ.
Для получения информации о системных требованиях для установки последней версии AIR прочитайте этот документ
.
Дата выпуска | Версия среды выполнения | Улучшения безопасности |
21 мая 2013 г. | Flash Player Desktop (Windows, Mac): 11.7.700.203 Flash Player (Chrome): 11.7.700.203 |
- |
14 мая 2013 г. | Flash Player Desktop (Windows, Mac): 11.7.700.202 AIR Desktop, iOS, Android: 3.7.0.1860 AIR SDK & Compiler: 3.7.0.1860 |
APSB13-14 |
9 апреля 2013 г. | Flash Player Desktop (Windows, Mac): 11.7.700.169 Flash Player for Chrome: 11.7.700.179 AIR Desktop, iOS: 11.7.0.1530 AIR Android: 11.7.0.1660 AIR SDK: 11.7.0.1530 AIR SDK & Compiler: 11.7.0.1530 |
APSB13-11 |
12 марта 2013 г. | Flash Player Desktop (Windows, Mac): 11.6.602.280 AIR Windows, Mac, Android, iOS: 3.6.0.6090 AIR SDK: 3.6.0.6090 AIR SDK & Compiler: 3.6.0.6090 |
APSB13-09 |
26 февраля 2013 г. | Flash Player Desktop (Windows, Mac): 11.6.602.171 | APSB13-08 |
12 февраля 2013 г. | Flash Player Desktop (Windows): 11.6.602.168 Flash Player Desktop (Mac): 11.6.602.167 AIR Windows, Mac, Android, iOS: 3.6.0.597 AIR SDK & Compiler: 3.6.0.599 |
APSB13-05 |
7 февраля 2013 г. | Flash Player Desktop (Windows, Mac): 11.5.502.149 | APSB13-04 |
8 января 2013 г. | Flash Player Desktop (Windows, Mac): 11.5.502.146 AIR (Windows, Mac, мобильные устройства): 3.5.0.1060 AIR SDK: 3.5.0.1060 |
APSB13-01 |
11 декабря 2012 г. | Flash Player Desktop (Windows): 11.5.502.135 Flash Player Desktop Mac: 11.5.502.136 AIR Windows, Android: 3.5.0.880 AIR Mac: 3.5.0.890 |
APSB12-27 |
6 ноября 2012 г. | Flash Player Desktop (Windows, Mac): 11.5.502.110 AIR (Windows, Mac, мобильные устройства): 3.5.0.600 AIR SDK: 3.5.0.600 |
APSB12-24 |
8 октября 2012 г. | Flash Player Desktop (Windows, Mac): 11.4.402.287 AIR (Windows, Mac, мобильные устройства): 3.4.0.2710 AIR SDK: 3.4.0.2710 |
APSB12-22 |
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 |