- 沙箱化增强
- 阻止对共享对象进行云备份 (iOS)
- 对选定设备使用 CPU 渲染模式 (iOS)
- 外部托管二级 SWF 文件 (iOS)
- GameInput API (Android)
提供的软件 | 发行版本 |
Flash Player 台式机版 (Mac) | 11.7.700.225 |
Flash Player 台式机版 (Win) | 11.7.700.224 |
AIR 台式机版 (Mac) | 3.7.0.2100 |
AIR 台式机版 (Win) | 3.7.0.2090 |
AIR 移动设备版 | 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)
- 将增强麦克风与 AEC 连接时,AAC 音频会失真 (3523551)
阻止对共享对象进行云备份 (iOS)
当前在用于 iOS 的 AIR 应用程序中,开发人员没有办法来阻止在 Apple iCloud 上对本地共享对象进行备份。而在 AIR 3.7 中,已将一个新的静态属性“preventBackup”引入 SharedObject ActionScript 类中,这便使得开发人员可以突破此局限性了。此属性只能用于 3.7 或更高版本的命名空间 (swf-version=>20)。将此属性指定为 true 将不会备份任何共享对象。此属性的默认值为 false,且只对具有 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>,可用来对指定的一组 iOS 设备强制采用 CPU 渲染模式,而对其他剩余设备采用 GPU 渲染模式。对于某些低端设备,如 iPad1 和 iPod4,当 GPU 渲染模式导致其内存不足时,便可以使用此功能。
例如,如果指定 <renderMode> GPU </renderMode> 和 <forceCPURenderModeForDevices> iPhone1 iPad1 </forceCPURenderModeForDevices>,则所有 iPad1 和 iPhone1 以外的 iOS 设备将采用 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>
"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。在 AOT 模式下具有 ABC 码的二级 SWF 之前只适用于本地包装的 SWF,如今也可以作为外部 SWF 来加载了。
开发人员需要将 Loader 的 URLRequest 的 URL 更改为其外部托管去除代码的 SWF 的 URL。以下是一个使用此功能的 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
<iPhone> . . <externalSwfs>assets/SampleSWFInfoFile.txt</externalSwfs> . . </iPhone>
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 提取出在示例文本文件中指定的所有子 SWF 中的 Actionscript 代码,将其添加到最终可执行文件中,并将去除代码的 SWF 移动到在当前工作目录中创建的“externalStrippedSwfs”文件夹下。“externalStrippedSwfs”文件夹中的目录结构与文本文件中指定的目录结构保持相同。生成的去除代码的 SWF 可以在一台 web 服务器上实现外部托管。
以下是一个 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. 加载 Flex 二级 SWF 会导致应用程序崩溃。
GameInput API (Android)
GameInput API 是一个接口,允许应用程序与附加的游戏输入设备(操纵杆、游戏手柄、游戏棒等)进行通信。游戏输入设备多种多样,功能和控制也各不相同。只有在 OS 4.1 或更高版本上运行的 Android 设备才支持此 API。实施此 API 后,便可能使不同(也可能未知)类型的游戏输入设备功能发挥更为出色。
此功能仅适用于 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,您需要将一个额外的编译器参数传递给 Flex 编译器,以便将 SWF 版本指定为 20:-swf-version=20。请参见下文中的说明。如果正在使用 Adobe Flex SDK:
- 下载用于 Flash Player 11.7 的新 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 版本指定为 20。
- 打开项目的“属性”面板(单击鼠标右键,然后选择“属性”)。从左侧列表中选择“ActionScript 编译器”。
- 将 -swf-version=20 添加到“附加编译器参数”输入中。这样可确保输出的 SWF 为 SWF 版本 20。如果您在命令行而不是在 Flash Builder 中进行编译,则需要添加相同的编译器参数。
- 请确保在浏览器中安装了新的 Flash Player 11.7。
针对 AIR 3.7 进行创作 更新至 AIR 3.7 命名空间
要访问新的 AIR 3.7 API 和行为,必须将应用程序描述符文件更新为 3.7 命名空间。如果您的应用程序不需要使用新的 AIR 3.7 API 和行为,则不需要更新命名空间。但是,即使您尚未利用新的 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®,并抽出宝贵时间向我们提供反馈!
发布日期 | 运行时版本 | 安全性增强 |
2013 年 5 月 21 日 | Flash Player 台式机版(Windows、Mac):11.7.700.203 Flash Player (Chrome):11.7.700.203 |
- |
2013 年 5 月 14 日 | Flash Player 台式机版(Windows、Mac):11.7.700.202 AIR(台式机版、iOS、Android):3.7.0.1860 AIR SDK & Compiler:3.7.0.1860 |
APSB13-14 |
2013 年 4 月 9 日 | Flash Player 台式机版(Windows、Mac):11.7.700.169 Flash Player Chrome 版:11.7.700.179 AIR(台式机版、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 |
2013 年 3 月 12 日 | Flash Player 台式机版(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 |
2013 年 2 月 26 日 | Flash Player 台式机版(Windows、Mac):11.6.602.171 | APSB13-08 |
2013 年 2 月 12 日 | Flash Player 台式机版 (Windows):11.6.602.168 Flash Player 台式机版 (Mac):11.6.602.167 AIR(Windows、Mac、Android、iOS):3.6.0.597 AIR SDK & Compiler:3.6.0.599 |
APSB13-05 |
2013 年 2 月 7 日 | Flash Player 台式机版(Windows、Mac):11.5.502.149 | APSB13-04 |
2013 年 1 月 8 日 | Flash Player 台式机版(Windows、Mac):11.5.502.146 AIR(Windows、Mac、移动设备版):3.5.0.1060 AIR SDK:3.5.0.1060 |
APSB13-01 |
2012 年 12 月 11 日 | Flash Player 台式机版 (Windows):11.5.502.135 Flash Player 台式机版 (Mac):11.5.502.136 AIR(Windows、Android):3.5.0.880 AIR Mac:3.5.0.890 |
APSB12-27 |
2012 年 11 月 6 日 | Flash Player 台式机版(Windows、Mac):11.5.502.110 AIR(Windows、Mac、移动设备版):3.5.0.600 AIR SDK:3.5.0.600 |
APSB12-24 |
2012 年 10 月 8 日 | Flash Player 台式机版(Windows、Mac):11.4.402.287 AIR(Windows、Mac、移动设备版):3.4.0.2710 AIR SDK:3.4.0.2710 |
APSB12-22 |
2012 年 8 月 21 日 | Flash Player 台式机版(Windows、Mac):11.4.402.265 AIR(Windows、Mac、移动设备版):3.4.0.2540 AIR SDK:3.4.0.2540 |
APSB12-19 |