加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在 FlashDevelop 的移动项目 (Adobe AIR) 中使用 ane

发布时间:2020-12-15 17:43:05 所属栏目:百科 来源:网络整理
导读:现在手机项目开发市场异常繁荣,各种技术层出不穷,作为一名跟随 Flash 多年的屌丝前端程序猿来说,Adobe Air 技术让我们看到一丝曙光(可以说很大一束 XDD ),而且在游戏领域已经有很多成功案例,效果丝毫不亚于原生语言开发的应用. 但是,再好的技术也有其不足之

现在手机项目开发市场异常繁荣,各种技术层出不穷,作为一名跟随 Flash 多年的屌丝前端程序猿来说,Adobe Air 技术让我们看到一丝曙光(可以说很大一束 XDD ),而且在游戏领域已经有很多成功案例,效果丝毫不亚于原生语言开发的应用.

但是,再好的技术也有其不足之处,目前来说 Air 提供的对移动设备底层功能支持还比较有限,很多 IOS/Android 公共功能都不支持. 好在 Adobe 提供了很好的解决方案,那就是 ane (AIR?Native Extensions),他为设备与 Air 之间的沟通起到了很好的桥梁作用.

下面简单介绍下在 FlashDevelop (以下简称 FD)中创建和发布包含 ane 的移动项目的一些注意事项:

当然首先你要有必要的 ane 文件,下面这个地址描述了如何创建自己的 ane 文件:
http://help.adobe.com/en_US/air/extensions/index.html
你也可以直接使用第三方提供的 ane (包括 Adobe 官方的)

http://www.adobe.com/devnet/air/native-extensions-for-air.html

有了 ane 文件就可以在移动项目中应用一些 Air 原生不支持的功能了,下面是一些注意事项(例子中用到了上面地址中的?Notification 和?Vibration 两个 ane):

  • 引入 ane:?
    将 ane 文件拷贝到项目目录(一般是 lib 或 ane 文件夹中),右键->Add To Library
  • 修改 ane 引入方式:
    ane 文件上右键->Options...,修改为 External library(not included);
  • 修改 application.xml 描述文件,引入 ane 支持:
    本例中引入了两个 ane 文件,因此需要增加如下代码:
    [html]? view plain copy print ?
    1. <extensions>??
    2. ???<!--?Vibration?ane?的?extension?id?-->??
    3. ???<extensionID>com.adobe.Vibration</extensionID>???
    4. <!--?notification?ane?的?extension?id?-->??
    5. ???<extensionID>com.adobe.mobile</extensionID>??
    6. </extensions>??
    当然 FD 4 为此也提供了 UI 支持,单击图一中所示按钮,进入 Extensions 选项卡(图二)进行编辑.

    (图一)


    (图一)

    (图二)


    (图二)
  • 增加一些额外支持描述:
    本例中?Vibration 需要增加权限描述,Notification 要增加服务描述(相应的 ane 下载页面中有相关说明),你可以直接修改 application.xml 或者在上面提到的界面中设置(图三)


    (图三)
  • 修改打包批处理命令:
    由于 FD 的编译打包过程都是通过批处理来实现的,要增加 ane 支持,需要对 Packager.bat 文件稍作修改,
    在 %FILE_OR_DIR% 后面增加?-extdir lib/ 一段(不换行),?lib 为 ane 所在目录相对路径.

提供本例测试 ane 部分代码(直接放在文档类构造函数里就行):

[javascript]? view plain copy print ?
    //?震动实现??
  1. if?(Vibration.isSupported)??
  2. {??
  3. ????var?v:Vibration?=?new?Vibration();??
  4. ????v.vibrate(2000);??
  5. }??
  6. ??
  7. //?系统提醒??
  8. try??
  9. {??
  10. ????var?nom:NotificationManager?=?new?NotificationManager();??
  11. catch?(err:Error)??
  12. ????return;??
  13. var?n:Notification?=?new?Notification();??
  14. n.tickerText?=?'提醒时状态栏中显示的文字';??
  15. n.title?=?'提醒的标题';??
  16. n.body?=?'和内容';??
  17. //?提醒图标类型??
  18. n.iconType?=?NotificationIconType.INFO;??
  19. nom.notifyUser('MY_NOTIFY_TYPE',?n);??

基本上需要注意的就这么多,现在可以在设备上测试一下了,可能会发生的状况是: 运行程序后,手机震动的同时在状态栏出现一条提示,打开状态栏看到带有 info 图标以及标题和内容的一条提醒.

-EOF-

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读