- 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] 使用嵌入字体的 TextFields 在移动设备上产生乱码 (3161138)
- 部分实时流内容的第一帧冻结 (3207896)
- 应用程序描述符中的 iOS 应用程序现在支持 50X50、100X100 和 1024X1024 的应用程序图标 (3217144)
- 使用特定的外部库时,使用本机扩展的应用程序有时会在 iOS 上发生崩溃。例如Libxml2.dylib (3226974)
- 分辨率为 768 x 1004 或 1024 x 748 的启动图像在全屏 iPad 应用程序中打包时,会出现一些偏差。(3230762)。有关使用启动图像的新指南,请参考此处
- 在连接到 StageVideo 对象的两个 NetStreams 之间切换时,iOS 上的 H264 视频发生崩溃 (3206438)
- CameraRoll.browseForImage() 引起透明度失真导致显示白色的问题 (3291312)
- ActionScript Worker (Flash Player)
- 沙箱桥支持 (Flash Player)
- 许可支持:适合游戏的 Flash Player Premium 功能 (Flash Player)
- 适用于增长的 GPU 范围的 Stage3D“constrained”配置文件(Flash Player 和 AIR)
- ByteArray 的 LZMA 支持(Flash Player 和 AIR)
- StageVideo attachCamera/Camera 改进(Flash Player 和 AIR)
- 带有 Stage3D 的 alpha 支持的压缩纹理(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 台式机版 (Windows®/Mac) | 11.4.402.265 |
| AIR(Windows®、Mac 和 Mobile) | 3.4.0.2540 |
| AIR SDK | 3.4.0.2540 |
- Matrix3D 的 transformVector() 错误地转变了 w 组件 (3190677)
- [iOS] 在 iOS 4.3 上,使用 Alpha 的压缩 Cubemaps 无法正确渲染 (3282166)
- 有关高位 ASCII 字符无法正确用于 AIR 台式机应用程序的 navigateToURL 问题 (3161093)
- [iOS] 在一些内容中,使用 AIR 3.4 安装 .ipa 文件偶尔会失败,出现安装错误:PackageExtractionFailed (3220974)
- 在使用 -hideAneLibSymbols 标志的过程中打包 iOS 应用程序时,只有框架、连接链接器选项的库和选项(如 -ios_version_min)应当用于 ANE platform.xml 文件
- 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-19 | Flash Player 台式机版 Windows® & Mac |
| Flash Player AndroidTM |
ActionScript Worker
- 在 ActionScript 和 Flash Runtime 引入 Worker 后,Flash 开发人员现在可将一些任务放在后台 Worker 进行处理,例如高延迟操作和长时间计算。 这些后台 Worker 同时运行,以便充分利用更多的计算机资源并且可避免像 UI 冻结之类的事情发生。
- 注意:若要充分利用 ActionScript Worker 并且能调试 worker,需要 Flash Builder 的下一个版本。Flash Builder 的下一个版本将在 8 月份通过公共测试版本提供。
- 注意:共享内存支持 (ByteArray.shareable) 已经改为在 Flash Player 即将发布的版本中发布。
沙箱桥支持
- 沙箱桥允许特定 ActionScript 对象或功能在 SWF-SWF 跨域通信之间显示。此功能在 AIR 中已可用,并且正在植入此版本的 Flash Player 中。
许可证支持:适合游戏的 Flash Player Premium 功能 (Flash Player)
- 随着适合游戏的 Premium 功能的推出,我们现在允许非 ActionScript 工作流以 Flash Player 为目标。 此次发行支持 Flash Player 中 XC API(联合使用域内存 API 和 Stage 3D 硬件加速 API)的 Premium 功能许可控制。这些 API 由一些第三方工具使用,如 Unity 和 Adobe 的项目“Alchemy”C/C++ 编译器。有关详细信息,请访问 www.adobe.com/go/fpl_cn。
适用于扩大 GPU 范围的 Stage3D“constrained”配置文件
- Flash Player 基于视频卡驱动程序的日期来决定是否使用硬件加速。在之前的版本中,我们为 2008 年 1 月 1 日之前的驱动程序提供了支持。在此发行中,我们将改为对 2006 年 1 月 1 日之前的驱动程序提供支持。使用 wmode=direct(或 AIR 的 renderMode=direct)的内容应当在 1/1/2006 之后的图形卡驱动程序日期进行硬件加速(如果可能)。这适用于 Stage3D 和 [StageVideo|StageVideo] API。此外,我们为 Stage3D 添加了名为“constrained”配置文件的新配置文件,以便您的内容可以在先前已列入黑名单的 Intel® GMA 芯片组上运行硬件加速。有关此新配置文件及其用法的详细信息,请参见下文。
ByteArray 的 LZMA 支持
- 除 ByteArray 的 zlib 压缩外,我们正在通过 ByteArray.compress() 和 ByteArray.uncompress() 把基于 LZMA 的其他压缩类型引入到 ByteArray 内部的压缩数据中。
带有 Stage3D 的 alpha 支持的压缩纹理(Flash Player 和 AIR)
- 现在,可支持对透明图像进行压缩纹理(ATF 文件格式)。
StageVideo attachCamera/Camera 改进
- 此功能在 StageVideo 对象上提供了一种新方法,此方法允许 ActionScript 代码引导视频流从摄像头到 StageVideo 对象,从而充分利用 GPU 而不是栅格器进行渲染。通过此功能,播放器可以在 GPU 加速可用的情况下更快地处理来自摄像头的视频流。
DXT 编码
- 此功能允许在运行期间将未压缩的纹理编码为 DXT 格式,以便纹理可以作为压缩 DXT 纹理上载到 GPU。
在 Flash Player 11.4 和 AIR 3.4 的台式机版上均可用
不推荐用于 AIR 的 Carbon API
- 自 Mac OS X 10.8 起,苹果将不再支持 Carbon API。因此,这些 API 和其他不推荐的代码将从此版本的 AIR 中移除,以便与 Mac OSX 10.8 匹配。
- 通过此新功能,开发人员可以在 iOS 设备上部署 AIR 应用程序,而无需使用 iTunes 或 Xcode。请注意,iTunes 10.5.0 或更高版本必须安装在用户计算机上才能使用此功能。
iOS 推送通知
- 此功能将使用 APNS(苹果推送通知服务)和提供程序(将与 APN 进行通信的第三方服务器)生成通知。已引进新的软件包 flash.notifications。 推送通知的发送完全依赖 Apple 的推送通知服务,APNS 不保证推送通知的发送。 Apple 也建议每次启动应用程序时订阅推送通知。每次客户端应用程序订阅推送通知时,APNS 会向客户端应用程序提供代号 id,并且此代号 id 将发送给将发送远程通知的第三方服务器或提供程序。
Ambient AudioPlaybackMode
- 通过 AIR 3.4,用户多了一个可选的 AudioPlaybackMode,即除了 VOICE 和 MEDIA 之外,还可选择 AMBIENT。通过这一新 AudioPlaybackMode,用户可以强制他们的应用程序遵循 iPhone/ipad 中的“硬件静音切换”。此 Ambient playbackmode 的最强用例是在游戏应用程序中,应用程序的用户可以选择禁用游戏声音,但仍可在背景中听到音乐或者任何其它应用程序的声音。 在 Ambient 模式下,音频仅在 iOS 设备上遵循硬件静音切换。在 AndroidTM 设备上,Ambient 模式和 Media 模式一样。
在 iOS 本机扩展中的异常支持
- iOS 的本机扩展现在既可以使用 C++,又可以使用 Objective-C 异常。此代码中的异常由扩展来捕捉。运行时不会捕捉扩展引发的异常。
用于列出所连接移动设备的 ADT 选项
- 新选项“-devices”已添加到 ADT 以列出连接的 iOS/AndroidTM 设备。用户不必使用列出 AndroidTM 设备的 adb 和 iOS 设备的 idb 就可以受益于此选项。请注意,iTunes 10.5.0 或更高版本必须安装在用户计算机上才能使用此功能。
用于解决 iOS 上的 ANE 符号冲突的 ADT 选项
- 当应用程序开发人员使用从各种资源获得的多个本机扩展时,如果共同的符号名称出现在 2 个 ANE 中,则可能会出现打包错误,提示目标文件中存在重复的符号,或在运行时发生崩溃。为了避免此问题,我们引入了新的“ADT”选项 -hideAneLibSymbols,用户可以在打包应用程序时指定该选项。它可以接受值“yes”或“no”,如果选择“yes”,则会对每个 ANE 隐藏其它 ANE 的库符号。
Worker 使用入门
若要开始了解 worker 的功能,请参阅 flashplayer11-4_p1_ex_concurrency.zip 文件中的示例。
注意
下表是在 MacOS 和 Windows® 上每个 worker 占用的内存空间:
# worker |
Mac BookPro |
PC 计算机 |
联想 T61 便携式计算机 |
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 |
代码在非原始的 worker(例如后台)上下文中执行时,一些 flashruntime API 行为会不同于在主线程中执行的 ActionScript 代码。当在后台 worker 中使用时,下列的 API 将以不同的方式表现。
无法正常运行的 API
下列 API 在 后台 worker 中不再适用。构造这些 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 returns 返回 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 行为变化
从后台 worker 内部运行时,下列 API 的行为有变化。一些对方法的调用属于 no-op(无操作),而其他调用将引发 IllegalOperationError 或与记录的 API 一致的等效项。返回值会尽可能与文档一致。例如,如果方法在标准情况下,使用带元素的数组,则在从后台 worker 内部执行时,它将返回空数组。
- 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() // 强制此后台 worker 停止并关闭
- setClipboard() // 无操作
-
- 方法
- activate(), clear(), copy(), cut(), paste(), selectAll() // 无操作
- exit() // 强制此后台 worker 停止并关闭
- 事件
- 仅支持退出事件,正在关闭 worker 时,系统会调度此事件(在生命周期方法调用或“主要”worker 正在关闭时发生,即运行时将退出;不可从后台 worker 撤消)
-
- supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // 都返回 false
- activeWindow // 返回 null
- autoExit // setter 是无操作
- idleThreshold // setter 是无操作
- openedWindows // 返回空数组 []
- systemIdleMode // setter 是无操作
- 方法
扩大的 GPU 范围 -“constrained”Stage3D 配置文件
引入了 Context3D 的一个新参数,称为“profile”。 此参数供 Stage3D.requestContext3D() 功能使用,并且您可以赋予其以下两个值中的一个:Context3DProfile.BASELINE(“baseline”),它将返回已经存在于之前版本中的典型 Context3D;或 Context3DProfile.BASELINE_CONSTRAINED(“baselineConstrained”),此值将返回一种新 Context3D,能够使以前版本不支持的 GPU 硬件加速运行。通过“constrained”配置文件,内容编写人员可以编写面向旧系统的 Stage3D 内容,例如使用 Windows® Intel® GMA 900/950 图形卡的旧系统。 为了使“constrained”配置文件能够面向低端硬件服务,牺牲了一些 Stage3D 功能,以便保证内容可在该硬件中正常运行。 GMA 900/950 这样的图形卡仅支持像素/定点着色器版本 2.0,这样,当在“constrained”配置文件中使用 Stage3D 时将受到以下限制:
- 每个着色器限于 64 ALU 和 32 个纹理指令。
- 每个着色器只有 4 个纹理间接读数。
- 每个着色器只有少量常量/变量/临时变量。
- 不支持判定寄存器。这将影响 sln/sge/seq/sne 并且需要替换成可在 ps_2_0 中使用的(这与 ps_2_x 相比,完成该操作需要使用更多的指令槽)复合 mov/cmp 指令。
- Context3D 后台缓冲区必须始终处于阶段范围内。
- Flash Player 实例中只允许有一个在“constrained”配置文件中运行的 Context3D 实例。
- 如同移动设备一样,传统的 Flash 显示列表元素不会更新,而受限 Stage3D 上下文是可见的,除非调用 Context3D.present()。
“profile”是 requestContext3D 方法的第二个可选参数。开发人员可以请求配置文件“baselineConstained”以获取受限模式下的 Context3D,如以下 api 所示: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> 由 <id> 标记中的应用程序描述符文件 (app.xml) 指定。默认情况下,如果您使用 Flash Builder 创建项目,它将与您的应用程序名称相同。
如果只有一个设备连接到桌面,可省略“-device <deviceID>”参数,系统将在连接的设备上安装/卸载应用程序。
adt -installApp -platform ios -package <ipa-file>
iOS 推送通知
1) app-xml 中的应用程序标识符(id 标记)应当与推送通知启用的移动设备配置证书的应用程序标识符相同。
2) 包括应用程序描述符中的 aps 环境授权:
<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>
要将启用推送通知的应用程序提交至应用程序商店,需要将 aps 环境设置为“production”。开发人员必须将配置文件与启用的推送通知结合使用。使用以下命令交叉检验已签署应用程序的授权。
codesign -d --entitlements - <YourAppName>.app
3) 在应用程序中使用最新添加的 flash.notification 类来启用推送通知支持。例如,
// 空数组列表返回在平台上,该平台不支持任何通知风格。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); // 在没有任何订阅选项的情况下调用订阅方法将自动为该平台支持的所有通知风格订阅 rn.subscribe(subscribeOptions); } function tokenEventHandler(event:RemoteNotificationEvent):void { // AIR 开发人员可以通过 URL 请求将 event.com 中收到的代号 id 发送至他的服务器 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 { // 处理接收自用于 (var x:String in e.data) 的类型通知 RemoteNotificationEvent 事件数据的代码 { trace("\n"+ x + ": " + e.data[x]); } } public function statusHandler(e:StatusEvent):void { // 处理订阅失败时的事件的代码 } private function onError(e:IOErrorEvent):void { // 处理通过 url 加载程序提出 url 请求时发生的错误的代码 } private function onComplete(e:Event):void { // 了解通过 url 加载程序提出的 url 请求完成时情况的代码 } } private function onStatus(e:HTTPStatusEvent):void { // 了解通过 url 加载程序提出 url 请求的 http 状态的代码 }
客户端应用程序可以在程序包中包含它支持的每种本地化语言的警报消息字符串。提供程序在通知负载的 aps 词典中指定 loc-key 和 loc-args 属性。设备接收通知时,它使用 aps 词典属性来查找用来显示给用户的当前语言的字符串并将其格式化。
本地化字符串必须位于相应的 <language> .lproj 文件夹下名为 Localizable.strings 的文件中。此文件的每个条目各有一个键和本地化字符串值,字符串可以用格式区分符来代替变量值。应用程序需要特别的字符串时,会得到为用户当前所选语言本地化的资源。
为了接收本地化远程通知,AIR 应用程序在 ipa 的 <language>/lproj 文件夹下的 Localizable.strings 文件中必须有本地化关键值对。 要在 ipa 添加 Localizable.strings,开发人员只需在如下的 adt 命令中添加各自的 <language> .lproj 文件夹:
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)
使用此命令生成如下输出:
List of attached devices:
Handle DeviceClass DeviceUUID DeviceName
7 iPhone 783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone
许可证支持:适合游戏的 Flash Player Premium 功能 (Flash Player)
联合使用 Stage3D 硬件加速和域内存(由部分第三方工具和项目“Alchemy”C/C++ 编译器使用)需要许可证。 在组合中使用两个功能时,信息的水印将显示在 Flash Player 内容调试程序中(调试播放器)。此许可要求不应用于在没有域内存(或域内存没有 Stage3D)的情况下使用 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
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 将以 SWF 版本 17 为目标。如果您在命令行而不是在 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 命名空间。要更新命名空间,请在您的应用程序描述符中将 xmillions 属性更改为:<application xmillions= “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 系统要求,请查阅此处的文档
