`
sooxin
  • 浏览: 250938 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Adobe AIR 3新特性

 
阅读更多

自从2008年发布了第一个版本,Adobe AIR已经走过了很长的一段路。在此期间,我们为AIR增加了几十个较大的特性,上百个较小的特性,性能优化和错误修复,并且我们支持3个额外的平台:iOS (iPhoneiPad),Android, 和Adobe AIR for TV.

AIR 3将是我们在不到两年半的时间里的第11个发行版本。虽然我们每次的发行版都代表了很大的进步,但我个人觉得这次是非比寻常的。AIR 3包括以下新的API和特性:

 

  • Stage3D(桌面特性)。Stage3D是一个底层的,具备硬件加速的二维和三维渲染的 API。对于AIR 3,目前这些API只能在AIR的桌面版本中使用,然而,未来这些特性也将进入移动设备。Stage3D是一个非常重要的特性,它的意义之大让我们感到言语都难以描述,您可以从这里得到更加详细的信息, 请参阅Stage 3D页面。
     
  • 本地扩展 (所有平台)。这又是一个重要的特性。从AIR 3的版本开始,开发者可以通过绑定本地扩展和应用程序,来增强AIR运行时的功能,然后他们就可以在ActionScript中调用那些扩展(这个特性原先只在Adobe AIR 2.5 for TV中存在,但是基于AIR 3,这个特性在所有的平台可用)。您可以认为Adobe AIR本地扩展(简称ANEs)就是ActionScript库(SWCs),只不过是包含了本机代码实现。ANEs的适用场合,包括让您的应用程序访问 AIR所不支持的原生API(见下面的例子),并授权在某些情况下访问本机代码,以达到更好的性能。关于更多AIR 3本地扩展的信息,请参阅奥利弗.高盛的这篇文章:扩展Adobe AIR
     
  • Android Market的授权集成 (显然只支持Android)。使用ANE文件,开发人员可以访问Android Market的授权服务,让发布者执行许可政策。这是一个能体现ANE强大特性的很好的例子:因为这个特性(授权服务)在iOS中是不可用的,所以我们不会把它作为AIR的直接支持的功能;但是,ANE可以保证我们运行于Android设备的AIR应用可以很轻松的访问这些API。
     
  • 运行时捆绑 (Android和桌面)。在之前的版本中,需要您的最终用户在安装您的应用之前,已经安装了AIR的运行时(如果没有,则必须先安装AIR运行时),如果您想改变这个过程(让您的应用程序安装过程和其它本地安装的应用程序没有区别),或者您是想控制您的应用程序运行所需的AIR版本,AIR 3允许您捆绑AIR运行时和您的应用程序。捆绑运行时非常容易,当您构建一个Android应用时可以设置apk-captive-runtime变量,如果是构建桌面应用,则可以设置bundle变量。(注意在iOS上AIR一直使用一个捆绑的运行时,虽然其机制不太相同。)
     
  • 背景音频播放 (对于iOS是新特性;在Android上之前就被支持了)。由于iOS独特的多任务模式,在之前如果我们想在AIR应用处于非活动状态的时候继续播放音频,是不可能的。在AIR 3中,您所需要做的只是修改您的应用程序描述文件,声明您需要播放背景音乐,然后它会自动工作。(基本上,当应用程序被放置到后台程序中,它将继续运行。但是,所有的屏幕更新将被禁用,以保持电池寿命,并符合iOS的多任务要求。)
     
  • iPad对CameraRoll的支持。虽然CameraRoll在技术上已经被iPad支持,但是我们在AIR 3中增加了很多更好的支持。在iPad上,图片选择器不再占用整个屏幕,在iPhone和iPod touch上也是如此。相反,它会在调用它的UI组件的相对位置上,出现一个浮动的面板。使用额外的CameraRollBrowseOptions类,开发人员可以选择图像选择器的大小和位置,并指定调用它的UI组件的位置。欲了解更多信息和代码示例,请参阅我的博客文章, 如何正确使用iPad上的CameraRoll API 。
     
  • 视频硬件加速 (移动设备):AIR 2.5通过StageVideo为TV带来了视频硬件加速;现在AIR 3则为移动设备也提供了StageVideo。
     
  • 本机文本字段(移动设备) 。之前版本的AIR提供给开发者访问底层渲染的能力,比如StageVideo (视频硬件加速)和StageWebView (本地的HTML渲染)。AIR 3提供了StageText的API,它允许开发人员将系统原生的文本字段放置在移动应用程序中。虽然您仍然可以使用Flash文本字段,但是 StageText文本字段可以使用所有操作系统底层支持的特性,比如放大镜,文本选择,自动更正等等。
     
  • 前置摄像头支持 (iOS和Android)。现在ActionScript的摄像头API可以访问 iOS和Android设备的前置摄像头和后置摄像头(如果是Android设备,至少需要2.3的版本)。您可以使用新的 Camera.position属性以及新CameraPosition类中的常量(背部,正面,和UNKNOWN)来确定摄像机的位置。欲了解更多信息和代码示例,请参阅我的博客文章, AIR 3前置摄像头支持 。
     
  • 移动设备的加密本地存储(带来了台式机和移动设备之间的等价实现)。EncryptedLocalStore的API曾经只在桌面上可用,现在则进入了iOS和Android。这个API用于安全地存储用户凭据,加密密钥,私密信息,和类似的重要信息。
     
  • 设备扬声器控制 (移动设备)。使用新的SoundMixer audioPlaybackMode属性,和新的AudioPlaybackMode类中的常量(媒体和语音),开发人员可以控制是否是通过电话的听筒或扬声器播放音频。
     
  • 原生JSON支持 (移动和台式机)。原先只能使用ActionScript来解析JSON,现在则是由运行时提供更有效的原生JSON支持。相对于ActionScript实现,原生的JSON API的速度更快,使用更少的内存。欲了解更多信息和代码示例,请参阅我的博客文章, AIR 3中的原生JSON支持 。
     
  • 套接字(Socket)改进(移动和桌面)。曾经我们认为应该很容易的通过 ProgressEvent.SOCKET_DATA来读取从网络传到ActionScript套接字缓冲区的数据,并确定有多少个字节可供读取(Socket.bytesAvailable)。然而,事实尚非如此。换句话说,在AIR 3之前,没有办法知道有多少数据从ActionScript套接字成功地写入了网络的缓冲区,也不可能知道有多少数据正在等待被写入。这导致开发者不确定调用套接字的关闭是否是安全的,或知道当用户想关闭应用程序的时候,是否有一个网络进程还在处理中。通过AIR 3,开发人员可以使用OutputProgressEvent.OUTPUT_PROGRESS事件和Socket新属性.bytesPending,以确定有多少数据被写入到网络,多少数据在ActionScript套接字中仍在等待写入。这些新的API可以帮助我们构建更强壮的依赖套接字网络访问的应用程序。欲了解更多信息和代码示例,请参阅我的博客文章, AIR 3中套接字的改进 。
     
  • H.264视频编码 (桌面)。您可以将摄像头捕获的视频基于H.264进行编码。
     
  • JPEG XR的支持 (移动和台式机)。AIR 3现在支持JPEG XR,一个新的文件格式,相比JPEG有几个优点。例如,JPEG XR提供了更好的压缩率,更小的压缩损失,更准确的色彩,和Alpha透明度。欲了解更多信息,请查阅Wikipedia上的JEPG XR文章
     
  • 更高分辨率的位图(移动和桌面) 。在之前的AIR中,位图被限制为16万像素(16777215像素)和8191的最大宽度/高度。在AIR 3中,所有的限制已被删除,这意味着现在的最大尺寸是由主机操作系统决定的,而不是AIR限制的。
     
  • 多声道数字音频输出 (只支持AIR for TV)。现在电视上的Adobe AIR可以播放杜比数字+ 5.1环绕声和DTS 5.1音频流。新的Capabilities.hasMultiChannelAudio属性,新的AudioDecoder类(其中包含代表几个不同的多声道音频类型的常量),和Capabilities.serverString属性,都可以让开发者来检测设备的多声道音频功能,并从 ActionScript中通过RTMP协议输出正确的音频比特流。
     
  • 高级控制器支持 (只支持AIR for TV)。使用新的GameInput API,开发人员可以构建基于高级电视控制器的游戏。一些新的API允许枚举设备(可用控制器),枚举设备的控制功能(按钮,触发器,加速度等),并从设备中得到控制值。
     
  • 更容易删除一个容器的所有的子元件 (所有平台)。DisplayObjectContainer现在已经具备了removeChildren()函数,它可以只用一个方法删除所有的子元件。这当然比下面的操作更有效:
    (this.numChildren> 0)this.removeChildAt(0)
     
  • 更容易判断MovieClip是否在播放 (所有平台)。通过使用新的isPlaying属性,可以很容易判断一个电影剪辑是否在播放。
     
  • GC建议的API(所有平台)。新的System.pauseForGCIfCollectionImminent功能,可以让AIR开发人员更好地控制运行时的自动垃圾回收机制。由于垃圾回收有可能造成动画或音频的暂停,开发者可以在用户难以察觉的时候,使用这个方法鼓励垃圾回收。
     
  • 安全随机数生成 (移动和桌面)。Adobe AIR中一直有Math.random方法可用,返回“伪随机”的数字,也就是说,这似乎是随机的,但总是包含一些非随机性(比如时间戳)的数字。AIR 3提供了一个用于生成随机数的新方法,称为generateRandomBytes(),位于flash.crypto包。由于 generateRandomBytes()函数使用操作系统API来产生随机数(在Windows上是CryptGenRandom ,在OSX上是/dev/random , 在Android上是/dev/urandom, 在iOS上则是SecRandomCopyBytes),由此产生的随机数更有效,更安全。
     
  • 三次贝塞尔曲线 (所有平台) 。新的cubicCurveTo()方法是Graphics类的功能,允许您以编程方式绘制三次贝塞尔曲线,而且不使用第三方ActionScript代码。

Adobe AIR 3作为一个候选发布版可以在Adobe实验室中找到 。
分享到:
评论

相关推荐

    Adobe AIR 完整入门与开发实录

    本書全面講解Adobe AIR(Adobe Integrated Runtime)技術和開發實踐。AIR允許利用現有的Web開發技能(包括Flash、Flex、HTML、JavaScript、Ajax)優勢,建立和配置跨平台(或跨作業系統)的桌面RIA(Rich Internet ...

    ADOBE AIR完整入門與開發實錄-使用Flex/Flash/Ajax開發AIR應用

    本書全面講解Adobe AIR(Adobe Integrated Runtime)技術和開發實踐。AIR允許利用現有的Web開發技能(包括Flash、Flex、HTML、JavaScript、Ajax)優勢,建立和配置跨平台(或跨作業系統)的桌面RIA(Rich Internet ...

    ADOBE AIR完整入門與開發實錄

    本書全面講解Adobe AIR(Adobe Integrated Runtime)技術和開發實踐。AIR允許利用現有的Web開發技能(包括Flash、Flex、HTML、JavaScript、Ajax)優勢,建立和配置跨平台(或跨作業系統)的桌面RIA(Rich Internet ...

    Aptana 非常不错的Javascript 编辑开发工具

    *Adobe AIR与iPhone开发工具 其主页上还提供如何使用该开发工具的视频。 Aptana 下载主页://www.aptana.com/ 带有语法提示,支持WEB标准 一款非常优秀的Javascript(AJAX) 开发工具:Aptana。应为它实在太棒了...

    ActionScript开发技术大全

    第30章AdobeAIR应用——本地播放器 644 30.1分析与设计 644 30.1.1功能分析 644 30.1.2界面设计 645 30.1.3模块设置 647 30.2建立项目 649 30.3创建新组件 650 30.3.1创建滚动容器组件 650 30.3.2创建复选框组件 653...

    FLEX从入门到精通.pdf

     2.2 Adobe Flex3生态系统,  2.2.1 运行时  2.2.2 语言  2.2.3 框架和API  2.2.4 数据通信  2.2.5 服务器  2.3 Adobe Flex RIA工作流程  2.3.1 设计与开发  2.3.2 运行  2.3.3 通信  2.3.4...

    ChromeStandaloneSetup64.exe

     ·Chrome提供了浏览器扩展框架,可以制作与Adobe-AIR类似的混合应用。  ·包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。  ·具备隐私模式,可以让用户无需在本地机器上登录即可使用...

    google chrome standalone enterprise msi

     Chrome提供了浏览器扩展框架 可以制作与Adobe AIR类似的混合应用  包含V8 Javascript虚拟机 这个多线程的虚拟机可以加速Javascript的执行  具备隐私模式 可以让用户无需在本地机器上登录即可使用 这个功能与...

    google chrome standalone enterprise 64

     Chrome提供了浏览器扩展框架 可以制作与Adobe AIR类似的混合应用  包含V8 Javascript虚拟机 这个多线程的虚拟机可以加速Javascript的执行  具备隐私模式 可以让用户无需在本地机器上登录即可使用 这个功能与...

    google chrome standalone 64位

     Chrome提供了浏览器扩展框架 可以制作与Adobe AIR类似的混合应用  包含V8 Javascript虚拟机 这个多线程的虚拟机可以加速Javascript的执行  具备隐私模式 可以让用户无需在本地机器上登录即可使用 这个功能与...

    chrome43.x

     ·Chrome提供了浏览器扩展框架,可以制作与Adobe-AIR类似的混合应用。  ·包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。  ·具备隐私模式,可以让用户无需在本地机器上登录即可使用,...

    chrome浏览器

     ·Chrome提供了浏览器扩展框架,可以制作与Adobe-AIR类似的混合应用。  ·包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。  ·具备隐私模式,可以让用户无需在本地机器上登录即可使用,...

    chrome.exe

    ·Chrome提供了浏览器扩展框架,可以制作与Adobe-AIR类似的混合应用。 ·包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。 ·具备隐私浏览模式,可以让用户无需在本地机器上登录即可使用,...

    flash动画软件

    Animate由原Adobe Flash更名得来,维持原有Flash...Animate CC将拥有大量的新特性,特别是在继续支持Flash SWF、AIR格式的同时,还会支持HTML5Canvas、WebGL,并能通过可扩展架构去支持包括SVG在内的几乎任何动画格式

    Google Chrome Dev 21.0.1180.15

     ·Chrome提供了浏览器扩展框架,可以制作与Adobe-AIR类似的混合应用。  ·包含V8 Javascript虚拟机,这个多线程的虚拟机可以加速Javascript的执行。  ·具备隐私模式,可以让用户无需在本地机器上登录即可使用,...

    log4Net详解(共2讲)

    如从2.02版开始为Adobe的RIA技术AIR提供支持,并且为GWT开发了Ext GWT2.0,这些都体现了ExtJs的强大活力和生命力。 在可预见的未来,ExtJs将会甩开对手,大踏步向前。 ExtJs的前景: ExtJS的前景是非常好的,...

Global site tag (gtag.js) - Google Analytics